58 lines
2.1 KiB
Groovy
58 lines
2.1 KiB
Groovy
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()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|