lith 2 years ago
parent
commit
12dbf9f179
1 changed files with 42 additions and 23 deletions
  1. 42 23
      Publish/DevOps2/jenkins-bash/release.jenkins.pipeline

+ 42 - 23
Publish/DevOps2/jenkins-bash/release.jenkins.pipeline

@@ -1,3 +1,11 @@
+def remote = [:]
+remote.name = 'dind-ssh'
+remote.host = 'dind'
+remote.port = 22
+remote.user = 'root'
+remote.password = '**'
+remote.allowAnyHosts = true
+
 pipeline {
     agent any
 
@@ -27,27 +35,31 @@ pipeline {
             steps {
                 script {
                     env.codePath = "$basePath/develop"
-                }
 
-                echo "#1 build_number: ${env.build_number}"
+                    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.1 pull code from svn to Path: $codePath"
+                    sshCommand remote: remote, command:  "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;  '"
-            } 
+                    echo "#1.2 change-app-version"
+                    sshCommand remote: remote, command:  "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;  '"
+                script {
+                    sshCommand remote: remote, command:  "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;  '"
+                script {
+                    sshCommand remote: remote, command:  "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};export DOCKER_BuildxExtArgs=\"--output=type=registry,registry.insecure=true\";    cd $codePath/Publish/DevOps2/release-bash; sh startup.bash;  '"
+                }
             }
         }
 
@@ -65,40 +77,45 @@ pipeline {
             steps {
                 script {
                     env.codePath = "$basePath/prd"
-                }
 
-                echo "#1 build_number: ${env.build_number}"
+                    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.1 pull code from svn to Path: $codePath"
+                    sshCommand remote: remote, command:  "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;  '"
+                    echo "#1.2 change-app-version"
+                    sshCommand remote: remote, command:  "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;  '"
+                script {
+                    sshCommand remote: remote, command:  "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;  '"
+                    sshCommand remote: remote, command:  "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;  '"
+                script {
+                    sshCommand remote: remote, command:  "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};export DOCKER_BuildxExtArgs=\"--output=type=registry,registry.insecure=true\";    cd $codePath/Publish/DevOps2/release-bash; sh startup.bash;  '"
+                }
             }
         }
 
         stage('#3.4 prd - publish code') {
             steps {
-                echo "build_number: ${env.build_number}"
+                script {
+                    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;  '"
+                    sshCommand remote: remote, command:  "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 {
@@ -109,8 +126,10 @@ pipeline {
                     echo "input: ${env.inputData}"
                }
             }
-            echo "clean temp files"
-            sh "rm -rf /var/jenkins_home/workspace/Sers/develop/${env.build_number}"
+            script {
+                echo "clean temp files"
+                sshCommand remote: remote, command:  "rm -rf /var/jenkins_home/workspace/Sers/develop/${env.build_number}"
+            }
         }
         success {
             echo "build success !"