Files
deployment-server/Jenkinsfile
Sebastian Seedorf 06241729e2 Initial commit
2022-01-24 16:04:58 +01:00

77 lines
1.9 KiB
Groovy

#!groovy
node {
// prepare
sh 'git rev-parse --verify HEAD > GIT_COMMIT'
env.GIT_COMMIT = readFile('GIT_COMMIT').trim().substring(0, 10)
sh 'rm GIT_COMMIT'
def jobName = env.JOB_NAME.tokenize('/')
print env.jobName
// set env
env.DOCKER_NAME="${jobName[0]}/${jobName[1]}:${env.BRANCH_NAME}-${env.GIT_COMMIT}"
env.DOCKER_REGISTRY="docker.sebse.de"
env.NODEJS_HOME = "${tool 'node16'}"
env.PATH="${env.NODEJS_HOME}/bin:${env.PATH}"
def customImage
currentBuild.result = "SUCCESS"
try {
stage('Checkout'){
checkout scm
}
/*stage('Test'){
env.NODE_ENV = "test"
print "Environment will be : ${env.NODE_ENV}"
sh 'node -v'
sh 'npm prune'
sh 'npm install'
sh 'npm test'
}*/
stage('Build Prod'){
env.NODE_ENV = "production"
print "Environment will be : ${env.NODE_ENV}"
sh 'node -v'
sh 'npm prune'
sh 'npm install --production=false'
sh 'npm run build'
sh 'rm node_modules -rf'
sh 'npm install --only=production'
}
stage('Build Docker'){
customImage = docker.build(env.DOCKER_NAME)
}
stage('Deploy'){
echo 'Push to Repo'
docker.withRegistry("https://${DOCKER_REGISTRY}", 'docker-registry-robot-web-development') {
/* Push the container to the custom Registry */
customImage.push()
}
}
stage('Cleanup'){
echo 'prune and cleanup'
sh 'npm prune'
sh 'rm node_modules -rf'
sh "docker rmi ${env.DOCKER_NAME} ${DOCKER_REGISTRY}/${env.DOCKER_NAME}"
sh 'docker image prune -f'
sh 'docker rmi $(docker images -a | grep "<none>" | awk "{print \$3}") &2>/del/null || exit 0'
}
}
catch (err) {
currentBuild.result = "FAILURE"
throw err
}
}