user-microservice/Jenkinsfile
2025-06-08 10:55:44 +00:00

51 lines
1.5 KiB
Groovy

pipeline {
agent {
label 'jnlp'
}
environment {
ACR_USERNAME = 'marcin00'
ACR_PASSWORD = credentials('acr-password-secret-id')
DOCKER_REGISTRY_URL = 'marcin00.azurecr.io'
DOCKER_IMAGE = "${DOCKER_REGISTRY_URL}/user-microservice:${GIT_COMMIT}"
}
stages {
stage('Code Tests') {
steps {
container('python') {
dir('api') {
sh '''
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt pytest
python3 -m pytest --junit-xml=pytest_junit.xml
'''
}
}
}
post {
always {
junit testResults: '**/*pytest_junit.xml'
}
}
}
stage('Build & Push Docker') {
steps {
container('buildkitd') {
sh '''
buildctl build \
--frontend dockerfile.v0 \
--local context=. \
--local dockerfile=. \
--output type=image,name=${DOCKER_IMAGE},push=true \
--export-cache type=registry,ref=${DOCKER_IMAGE}-cache,mode=max \
--import-cache type=registry,ref=${DOCKER_IMAGE}-cache
'''
}
}
}
}
}