diff options
| author | zsdc <taras@vyos.io> | 2020-03-12 21:43:01 +0200 | 
|---|---|---|
| committer | zsdc <taras@vyos.io> | 2020-03-12 21:43:01 +0200 | 
| commit | 0cbb1704f21c148430ce69d6e94806e1efc6216b (patch) | |
| tree | a9f9621b1f4f4b0f820b015184e794c5a387bd98 | |
| parent | 230e4ef2cc26ffed6287c89536bc7f920144e1d2 (diff) | |
| download | vyos-cloud-init-0cbb1704f21c148430ce69d6e94806e1efc6216b.tar.gz vyos-cloud-init-0cbb1704f21c148430ce69d6e94806e1efc6216b.zip | |
Cloud-init: T2117: Added missed working directory for upload stage
| -rw-r--r-- | Jenkinsfile | 98 | 
1 files changed, 50 insertions, 48 deletions
| diff --git a/Jenkinsfile b/Jenkinsfile index eef2a642..4911b6aa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -126,54 +126,56 @@ pipeline {          }          success {              script { -                // archive *.deb artifact on custom builds, deploy to repo otherwise -                if ( isCustomBuild()) { -                    archiveArtifacts artifacts: 'cloud-init_*_all.deb', fingerprint: true -                } else { -                    // publish build result, using SSH-dev.packages.vyos.net Jenkins Credentials -                    sshagent(['SSH-dev.packages.vyos.net']) { -                        // build up some fancy groovy variables so we do not need to write/copy -                        // every option over and over again! -                        def RELEASE = getGitBranchName() -                        if (getGitBranchName() == "master") { -                            RELEASE = 'current' -                        } - -                        def VYOS_REPO_PATH = '/home/sentrium/web/dev.packages.vyos.net/public_html/repositories/' + RELEASE + '/' -                        if (getGitBranchName() == "crux") -                            VYOS_REPO_PATH += 'vyos/' - -                        def SSH_OPTS = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR' -                        def SSH_REMOTE = 'khagen@10.217.48.113' - -                        echo "Uploading package(s) and updating package(s) in the repository ..." - -                        files = findFiles(glob: 'cloud-init_*_all.deb') -                        files.each { PACKAGE -> -                            def ARCH = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Architecture").trim() -                            def SUBSTRING = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Package").trim() -                            def SSH_DIR = '~/VyOS/' + RELEASE + '/' + ARCH -                            def ARCH_OPT = '' -                            if (ARCH != 'all') -                                ARCH_OPT = '-A ' + ARCH - -                            // No need to explicitly check the return code. The pipeline -                            // will fail if sh returns a non 0 exit code -                            sh """ -                                ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c 'mkdir -p ${SSH_DIR}'" -                            """ -                            sh """ -                                scp ${SSH_OPTS} ${PACKAGE} ${SSH_REMOTE}:${SSH_DIR}/ -                            """ -                            sh """ -                                ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} remove ${RELEASE} ${SUBSTRING}'" -                            """ -                            sh """ -                                ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} deleteunreferenced'" -                            """ -                            sh """ -                                ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} includedeb ${RELEASE} ${SSH_DIR}/${PACKAGE}'" -                            """ +                dir('build') { +                    // archive *.deb artifact on custom builds, deploy to repo otherwise +                    if ( isCustomBuild()) { +                        archiveArtifacts artifacts: 'cloud-init_*_all.deb', fingerprint: true +                    } else { +                        // publish build result, using SSH-dev.packages.vyos.net Jenkins Credentials +                        sshagent(['SSH-dev.packages.vyos.net']) { +                            // build up some fancy groovy variables so we do not need to write/copy +                            // every option over and over again! +                            def RELEASE = getGitBranchName() +                            if (getGitBranchName() == "master") { +                                RELEASE = 'current' +                            } + +                            def VYOS_REPO_PATH = '/home/sentrium/web/dev.packages.vyos.net/public_html/repositories/' + RELEASE + '/' +                            if (getGitBranchName() == "crux") +                                VYOS_REPO_PATH += 'vyos/' + +                            def SSH_OPTS = '-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR' +                            def SSH_REMOTE = 'khagen@10.217.48.113' + +                            echo "Uploading package(s) and updating package(s) in the repository ..." + +                            files = findFiles(glob: 'cloud-init_*_all.deb') +                            files.each { PACKAGE -> +                                def ARCH = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Architecture").trim() +                                def SUBSTRING = sh(returnStdout: true, script: "dpkg-deb -f ${PACKAGE} Package").trim() +                                def SSH_DIR = '~/VyOS/' + RELEASE + '/' + ARCH +                                def ARCH_OPT = '' +                                if (ARCH != 'all') +                                    ARCH_OPT = '-A ' + ARCH + +                                // No need to explicitly check the return code. The pipeline +                                // will fail if sh returns a non 0 exit code +                                sh """ +                                    ssh ${SSH_OPTS} ${SSH_REMOTE} -t "bash --login -c 'mkdir -p ${SSH_DIR}'" +                                """ +                                sh """ +                                    scp ${SSH_OPTS} ${PACKAGE} ${SSH_REMOTE}:${SSH_DIR}/ +                                """ +                                sh """ +                                    ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} remove ${RELEASE} ${SUBSTRING}'" +                                """ +                                sh """ +                                    ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} deleteunreferenced'" +                                """ +                                sh """ +                                    ssh ${SSH_OPTS} ${SSH_REMOTE} -t "uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH_OPT} includedeb ${RELEASE} ${SSH_DIR}/${PACKAGE}'" +                                """ +                            }                          }                      }                  } | 
