pipeline { agent { label 'jenkins-slave' } environment { DOCKER_REPO = "opengnsys" DOCKER_CREDENTIALS = credentials('docker-hub-credentials') DOCKER_TAG = "${env.BUILD_NUMBER}" DOCKER_IMAGE_NAME = "oggui" BRANCH_NAME = "${GIT_BRANCH.split("/")[1]}" } stages { stage ('Checkout') { steps { checkout scm } } stage('Build') { steps { echo 'Building....' script { dir('ogWebconsole') { IMAGE_ID = "${DOCKER_REPO}/${DOCKER_IMAGE_NAME}:${BRANCH_NAME}-${DOCKER_TAG}" if (BRANCH_NAME == 'main') { LATEST_ID = 'latest' } else { LATEST_ID = "${DOCKER_REPO}/${DOCKER_IMAGE_NAME}:${BRANCH_NAME}-latest" } docker.build("${IMAGE_ID}", "-f Dockerfile .") docker.build("${LATEST_ID}", "-f Dockerfile .") } } } } stage('Testing') { steps { echo 'Running Tests....' script { dir('ogWebconsole') { docker.image("${IMAGE_ID}").withRun('-e CHROME_BIN=/usr/bin/chromium -v $(pwd)/karma.conf.js:/app/karma.conf.js -v $(pwd)/.env:/app/.env') { c -> sh 'docekr exec -it ${c.id} ng test --watch=false --source-map=false --karma-config=karma.conf.js --browsers=ChromeHeadless --progress=false' } } } } } stage('Push') { steps { echo 'Pushing....' script { docker.withRegistry('https://index.docker.io/v1/', 'docker-hub-credentials' ) { docker.image("${IMAGE_ID}").push() docker.image("${LATEST_ID}").push() } } } } } }