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 ''' } } } } }