123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- pipeline {
- agent any
- environment {
- basePath = "/root/docker-cache/jenkins/jenkins_home/workspace/Sers/develop/${env.build_number}"
- APPNAME = "Sers"
- SVN_PATH = "svn://svn.ki.lith.cloud/Sers"
- SVN_USERNAME = "jenkins"
- SVN_PASSWORD = "**"
- NUGET_PATH = "/root/docker-cache/jenkins/jenkins_home/workspace/.nuget"
- NUGET_SERVER = "http://nuget.lith.cloud:8"
- NUGET_KEY = "**"
- DOCKER_ImagePrefix = "docker-dev.lith.cloud:8/"
- DOCKER_USERNAME = " "
- DOCKER_PASSWORD = " "
- DOCKER_ImagePrefix_Prd = "docker.lith.cloud:8/"
- DOCKER_USERNAME_Prd = " "
- DOCKER_PASSWORD_Prd = " "
- }
- stages {
- stage('#1.1 develop - init code') {
- steps {
- script {
- env.codePath = "$basePath/develop"
- }
- echo "#1 build_number: ${env.build_number}"
- echo "#1.1 pull code from svn to Path: $codePath"
- sh "docker exec -i jenkins-dind sh -c 'set -e; mkdir -p $codePath;chmod 777 $codePath; docker run -i --rm -v $codePath:/root/svn docker.lith.cloud:8/dockerhub/serset/svn-client svn checkout \"$SVN_PATH/branches/develop\" /root/svn --username \"$SVN_USERNAME\" --password \"$SVN_PASSWORD\" --no-auth-cache > /dev/null; '"
- echo "#1.2 change-app-version"
- sh "docker exec -i jenkins-dind sh -c 'set -e; export versionSuffix=-preview${env.build_number}; cd $codePath/Publish/DevOps2/build-bash; sh 20.change-app-version.bash; '"
- }
- }
- stage('#1.2 develop - build') {
- steps {
- sh "docker exec -i jenkins-dind sh -c 'set -e; export APPNAME=$APPNAME; export NUGET_PATH=$NUGET_PATH; cd $codePath/Publish/DevOps2/build-bash; sh startup.bash; '"
- }
- }
- stage('#1.3 develop - push') {
- steps {
- sh "docker exec -i jenkins-dind sh -c 'set -e; export APPNAME=$APPNAME; export NUGET_PATH=$NUGET_PATH; export NUGET_SERVER=$NUGET_SERVER; export NUGET_KEY=$NUGET_KEY; export DOCKER_ImagePrefix=${env.DOCKER_ImagePrefix};export DOCKER_USERNAME=${env.DOCKER_USERNAME};export DOCKER_PASSWORD=${env.DOCKER_PASSWORD}; cd $codePath/Publish/DevOps2/release-bash; sh startup.bash; '"
- }
- }
- stage('#2 deploy to prod?') {
- steps {
- timeout(time:1800,unit:'SECONDS') {
- script {
- inputData = input message: "release to prod?", ok: 'Proceed?', parameters: [string(defaultValue: '', description: 'text comment', name: 'comment')], submitterParameter: 'APPROVER'
- }
- }
- }
- }
- stage('#3.1 prd - init code') {
- steps {
- script {
- env.codePath = "$basePath/prd"
- }
- echo "#1 build_number: ${env.build_number}"
- echo "#1.1 pull code from svn to Path: $codePath"
- sh "docker exec -i jenkins-dind sh -c 'set -e; mkdir -p $codePath;chmod 777 $codePath; docker run -i --rm -v $codePath:/root/svn docker.lith.cloud:8/dockerhub/serset/svn-client svn checkout \"$SVN_PATH/branches/develop\" /root/svn --username \"$SVN_USERNAME\" --password \"$SVN_PASSWORD\" --no-auth-cache > /dev/null; '"
- echo "#1.2 change-app-version"
- sh "docker exec -i jenkins-dind sh -c 'set -e; export versionSuffix=; cd $codePath/Publish/DevOps2/build-bash; sh 20.change-app-version.bash; '"
- }
- }
- stage('#3.2 prd - build') {
- steps {
- sh "docker exec -i jenkins-dind sh -c 'set -e; export APPNAME=$APPNAME; export NUGET_PATH=$NUGET_PATH; cd $codePath/Publish/DevOps2/build-bash; sh startup.bash; '"
- sh "docker exec -i jenkins-dind sh -c 'set -e; export APPNAME=$APPNAME; export NUGET_PATH=$NUGET_PATH; cd $codePath/Publish/DevOps2/build-bash; sh 40.Station-publish-multiple.bash; '"
- }
- }
- stage('#3.3 prd - push') {
- steps {
- sh "docker exec -i jenkins-dind sh -c 'set -e; export APPNAME=$APPNAME;export NUGET_PATH=$NUGET_PATH; export NUGET_SERVER=$NUGET_SERVER;export NUGET_KEY=$NUGET_KEY; export DOCKER_ImagePrefix=${env.DOCKER_ImagePrefix_Prd};export DOCKER_USERNAME=${env.DOCKER_USERNAME_Prd};export DOCKER_PASSWORD=${env.DOCKER_PASSWORD_Prd}; cd $codePath/Publish/DevOps2/release-bash; sh startup.bash; '"
- }
- }
- stage('#3.4 prd - publish code') {
- steps {
- echo "build_number: ${env.build_number}"
- sh "docker exec -i jenkins-dind sh -c 'set -e; export codePath=$basePath/code-with-prod-version;export SVN_PATH=$SVN_PATH;export SVN_USERNAME=$SVN_USERNAME;export SVN_PASSWORD=$SVN_PASSWORD; export versionSuffix=; cd $basePath/prd/Publish/DevOps2/jenkins-bash; sh 05.svn-merge.bash; '"
- }
- }
-
- }
- post {
- always {
- timeout(time:3600,unit:'SECONDS') {
- script {
- env.inputData = input message: "Clean temp files, \n will wait for 3600 seconds. \n click abort to skip clean.", ok: 'Proceed', parameters: [string(defaultValue: '', description: 'text comment', name: 'comment')], submitterParameter: 'approver'
- echo "input: ${env.inputData}"
- }
- }
- echo "clean temp files"
- sh "rm -rf /var/jenkins_home/workspace/Sers/develop/${env.build_number}"
- }
- success {
- echo "build success !"
- }
- failure {
- echo "build failure !"
- }
- aborted {
- echo "build aborted !"
- }
- }
- }
|