diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-04-28 16:08:31 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2022-04-28 16:08:31 +0200 |
commit | 3925c1baabb072d2f21932aa85ed05058ff26f54 (patch) | |
tree | 3b965d9c6b287e96f6170c7b8fa54befdceb4d96 | |
parent | 3600691fe2c9a88780c896ee34013f48e79ca14a (diff) | |
download | vyos-build-3925c1baabb072d2f21932aa85ed05058ff26f54.tar.gz vyos-build-3925c1baabb072d2f21932aa85ed05058ff26f54.zip |
Revert "Jenkins: builld dsc packages beside amd64 binaries"
This reverts commit 341cc97c8bb76d47fd028ec8a31b6371aa54cea9.
-rw-r--r-- | vars/buildPackage.groovy | 98 | ||||
-rw-r--r-- | vars/cloneAndBuild.groovy | 4 |
2 files changed, 27 insertions, 75 deletions
diff --git a/vars/buildPackage.groovy b/vars/buildPackage.groovy index 989aba27..68643079 100644 --- a/vars/buildPackage.groovy +++ b/vars/buildPackage.groovy @@ -87,8 +87,6 @@ def call(description=null, pkgList=null, buildCmd=null, buildArm=false, changesP script { cloneAndBuild(description, 'amd64', pkgList, buildCmd) stash includes: '**/*.deb', name: 'binary-amd64', allowEmpty: true - stash includes: '**/*.dsc', name: 'source-dsc', allowEmpty: true - stash includes: '**/*.tar.*z', name: 'source-tar', allowEmpty: true } } post { @@ -138,11 +136,9 @@ def call(description=null, pkgList=null, buildCmd=null, buildArm=false, changesP } steps { script { - // Unpack files for amd64, sources and arm64 if packages got build + // Unpack files for amd64 and arm64 if packages got build try { unstash 'binary-amd64' - unstash 'source-dsc' - unstash 'source-tar' unstash 'binary-arm64' } catch (e) { print "Unstash failed, ignoring - could be because there exists no arm64 build" @@ -154,41 +150,29 @@ def call(description=null, pkgList=null, buildCmd=null, buildArm=false, changesP return } - echo "Uploading Artifacts to external repository" - copyArtifacts fingerprintArtifacts: true, projectName: '${JOB_NAME}', selector: specific('${BUILD_NUMBER}') - - // 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 = env.DEV_PACKAGES_VYOS_NET_HOST // defined as global variable - def SSH_DIR = '~/VyOS/' + RELEASE - - sshagent(['SSH-dev.packages.vyos.net']) { - - sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"bash --login -c 'mkdir -p ${SSH_DIR}'\"") - - // Removing of source and binary packages should be BEFORE adding new ones. Else "reprepro [remove/removesrc]" command may remove [source/binary] package correspondingly (behavior depends on package links). - // To omit this feature(bug?) do not merge removing-adding sequence by sources and binaries as it used to be - files = findFiles(glob: '**/*.dsc') - if (files) { - echo "Remove deprecated source package(s) from the repository..." - files.each { FILE -> - def PACKAGE = sh(returnStdout: true, script: "cat ${FILE} | grep Source ").trim().tokenize(' ').last() - sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} removesrc ${RELEASE} ${PACKAGE}'\"") - } - } - - files = findFiles(glob: '**/*.deb') - if (files) { - echo "Remove deprecated binary package(s) from the repository..." + files = findFiles(glob: '**/*.deb') + if (files) { + echo "Uploading Artifacts to external repository" + copyArtifacts fingerprintArtifacts: true, projectName: '${JOB_NAME}', selector: specific('${BUILD_NUMBER}') + + // 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 = env.DEV_PACKAGES_VYOS_NET_HOST // defined as global variable + def SSH_DIR = '~/VyOS/' + RELEASE + + // publish build result, using SSH-dev.packages.vyos.net Jenkins Credentials + sshagent(['SSH-dev.packages.vyos.net']) { + sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"bash --login -c 'mkdir -p ${SSH_DIR}'\"") + echo "Uploading package(s) and updating package(s) in the repository ..." files.each { FILE -> // NOTE: Groovy is a pain in the ass and " quotes differ from ', so all shell code must use " in the beginning def PACKAGE = sh(returnStdout: true, script: "dpkg-deb -f ${FILE} Package").trim() @@ -196,43 +180,13 @@ def call(description=null, pkgList=null, buildCmd=null, buildArm=false, changesP def ARCH = '' if (PACKAGE_ARCH != 'all') ARCH = '-A ' + PACKAGE_ARCH - sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH} remove ${RELEASE} ${PACKAGE}'\"") - } - } - - files = findFiles(glob: '**/*.tar.*z') - if (files) { - echo "Uploading tarball package(s) to the repository..." - files.each { FILE -> - sh(script: "scp ${SSH_OPTS} ${FILE} ${SSH_REMOTE}:${SSH_DIR}") - } - } - files = findFiles(glob: '**/*.dsc') - if (files) { - echo "Uploading *.dsc package(s) to the repository..." - files.each { FILE -> - def PACKAGE = sh(returnStdout: true, script: "cat ${FILE} | grep Source ").trim().tokenize(' ').last() sh(script: "scp ${SSH_OPTS} ${FILE} ${SSH_REMOTE}:${SSH_DIR}") - def FILENAME = FILE.toString().tokenize('/').last() - sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} includedsc ${RELEASE} ${SSH_DIR}/${FILENAME}'\"") - } - } + sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH} remove ${RELEASE} ${PACKAGE}'\"") - files = findFiles(glob: '**/*.deb') - if (files) { - echo "Uploading binary package(s) to the repository ..." - files.each { FILE -> - // NOTE: Groovy is a pain in the ass and " quotes differ from ', so all shell code must use " in the beginning - def PACKAGE = sh(returnStdout: true, script: "dpkg-deb -f ${FILE} Package").trim() - def PACKAGE_ARCH = sh(returnStdout: true, script: "dpkg-deb -f ${FILE} Architecture").trim() - def ARCH = '' - if (PACKAGE_ARCH != 'all') - ARCH = '-A ' + PACKAGE_ARCH - sh(script: "scp ${SSH_OPTS} ${FILE} ${SSH_REMOTE}:${SSH_DIR}") // Packages like FRR produce their binary in a nested path e.g. packages/frr/frr-rpki-rtrlib-dbgsym_7.5_arm64.deb, // thus we will only extract the filename portion from FILE as the binary is scp'ed to SSH_DIR without any subpath. - def FILENAME = FILE.toString().tokenize('/').last() + def FILENAME = FILE.toString().tokenize('/')[-1] sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} ${ARCH} includedeb ${RELEASE} ${SSH_DIR}/${FILENAME}'\"") } sh(script: "ssh ${SSH_OPTS} ${SSH_REMOTE} -t \"uncron-add 'reprepro -v -b ${VYOS_REPO_PATH} deleteunreferenced'\"") diff --git a/vars/cloneAndBuild.groovy b/vars/cloneAndBuild.groovy index 22dfefaa..adb62525 100644 --- a/vars/cloneAndBuild.groovy +++ b/vars/cloneAndBuild.groovy @@ -56,13 +56,11 @@ def call(description, architecture, pkgList, buildCmd) { } else if (buildCmd) { sh buildCmd } else { - sh 'dpkg-buildpackage -uc -us -tc -F' + sh 'dpkg-buildpackage -uc -us -tc -b' } } if (architecture == 'amd64') { archiveArtifacts artifacts: "**/*.deb", fingerprint: true - archiveArtifacts artifacts: "**/*.dsc", fingerprint: true - archiveArtifacts artifacts: "**/*.tar.*z", fingerprint: true } else { archiveArtifacts artifacts: "**/*_${architecture}.deb", fingerprint: true } |