pipeline { environment { DOCKER_USERNAME = 'jenkins' DOCKER_PASSWORD = credentials('gitea_jenkins') SONAR_TOKEN = credentials('sonarcube_token') POSTGRES_USER = 'postgres' POSTGRES_PASSWORD = 'password' POSTGRES_DB = 'arbeitszeitmessung' } agent any stages { stage('Test') { agent { docker { image '' args '' args '' } } steps { script { sh ''' docker run -d --rm \ --name test-db \ -e POSTGRES_USER={$POSTGRES_USER} \ -e POSTGRES_PASSWORD={$POSTGRES_PASSWORD} \ -e POSTGRES_DB={$POSTGRES_DB} \ -v ./DB/initdb:/docker-entrypoint-initdb.d\ -p "5432:5432" \ postgres:16 ''' // docker.image('golang:1.24.5').withRun( // '-u root:root --network=host' // ) { go -> // // wait for DB to start // sh ''' // cd Backend \ // go mod download && go mod tidy \ // go test ./... -v // ''' // } } } } stage('SonarCube Analysis') { steps { sh 'make scan' } } stage('Building image arbeitszeit-backend') { when { anyOf { changeset 'Jenkinsfile' changeset 'Makefile' changeset 'Backend/**' } } steps { sh 'make backend' } } } }