From 31ca6ea2b37147b8fd29cb3bd71c2ae1630bdf07 Mon Sep 17 00:00:00 2001 From: Colin Hutchinson Date: Thu, 21 Apr 2022 11:33:23 +0000 Subject: [PATCH] chore(release): cleanup the Jenkins release logic (#8706) --- Jenkinsfile | 145 +++++++++------------------------------------------- 1 file changed, 23 insertions(+), 122 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 289f71afaf0..f94f37fe389 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -57,7 +57,7 @@ pipeline { } } parallel { - stage('AmazonLinux') { + stage('RPM') { agent { node { label 'bionic' @@ -66,68 +66,8 @@ pipeline { environment { KONG_SOURCE_LOCATION = "${env.WORKSPACE}" KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" - AWS_ACCESS_KEY = credentials('AWS_ACCESS_KEY') - AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY') - } - steps { - sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' - sh 'make setup-kong-build-tools' - sh 'PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=amazonlinux RESTY_IMAGE_TAG=2 make release' - } - } - stage('src & Alpine') { - agent { - node { - label 'bionic' - } - } - environment { - KONG_SOURCE_LOCATION = "${env.WORKSPACE}" - KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" - AWS_ACCESS_KEY = credentials('AWS_ACCESS_KEY') - AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY') - } - steps { - sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' - sh 'make setup-kong-build-tools' - sh 'PACKAGE_TYPE=src RESTY_IMAGE_BASE=src make release' - sh 'PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3.14 CACHE=false DOCKER_MACHINE_ARM64_NAME="kong-"`cat /proc/sys/kernel/random/uuid` make release' - - } - } - stage('RedHat') { - agent { - node { - label 'bionic' - } - } - environment { - PACKAGE_TYPE = 'rpm' - RESTY_IMAGE_BASE = 'rhel' - KONG_SOURCE_LOCATION = "${env.WORKSPACE}" - KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" - PRIVATE_KEY_FILE = credentials('kong.private.gpg-key.asc') - PRIVATE_KEY_PASSPHRASE = credentials('kong.private.gpg-key.asc.password') - } - steps { - sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' - sh 'make setup-kong-build-tools' - sh 'cp $PRIVATE_KEY_FILE ../kong-build-tools/kong.private.gpg-key.asc' - sh 'RESTY_IMAGE_TAG=7 make release' - sh 'RESTY_IMAGE_TAG=8 make release' - } - } - stage('CentOS') { - agent { - node { - label 'bionic' - } - } - environment { - PACKAGE_TYPE = 'rpm' - RESTY_IMAGE_BASE = 'centos' - KONG_SOURCE_LOCATION = "${env.WORKSPACE}" - KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" + GITHUB_SSH_KEY = credentials('github_bot_ssh_key') + PACKAGE_TYPE = "rpm" PRIVATE_KEY_FILE = credentials('kong.private.gpg-key.asc') PRIVATE_KEY_PASSPHRASE = credentials('kong.private.gpg-key.asc.password') } @@ -135,99 +75,60 @@ pipeline { sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' sh 'make setup-kong-build-tools' sh 'cp $PRIVATE_KEY_FILE ../kong-build-tools/kong.private.gpg-key.asc' - sh 'RESTY_IMAGE_TAG=7 make release' - sh 'RESTY_IMAGE_TAG=8 make release' + sh 'make RESTY_IMAGE_BASE=amazonlinux RESTY_IMAGE_TAG=2 release' + sh 'make RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=7 release' + sh 'make RESTY_IMAGE_BASE=centos RESTY_IMAGE_TAG=8 release' + sh 'make RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=7 release' + sh 'make RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8 release' } } - stage('Debian OldStable') { + stage('DEB') { agent { node { label 'bionic' } } environment { - PACKAGE_TYPE = 'deb' - RESTY_IMAGE_BASE = 'debian' - KONG_SOURCE_LOCATION = "${env.WORKSPACE}" - KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" - } - steps { - sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' - sh 'make setup-kong-build-tools' - sh 'RESTY_IMAGE_TAG=stretch make release' - } - } - stage('Debian Stable & Testing') { - agent { - node { - label 'bionic' - } - } - environment { - PACKAGE_TYPE = 'deb' - RESTY_IMAGE_BASE = 'debian' - KONG_SOURCE_LOCATION = "${env.WORKSPACE}" - KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" - } - steps { - sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' - sh 'make setup-kong-build-tools' - sh 'RESTY_IMAGE_TAG=buster make release' - sh 'RESTY_IMAGE_TAG=bullseye make release' - } - } - stage('Ubuntu') { - agent { - node { - label 'bionic' - } - } - environment { - PACKAGE_TYPE = 'deb' - RESTY_IMAGE_BASE = 'ubuntu' - RESTY_IMAGE_TAG = 'bionic' KONG_SOURCE_LOCATION = "${env.WORKSPACE}" KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" + GITHUB_SSH_KEY = credentials('github_bot_ssh_key') + PACKAGE_TYPE = "deb" } steps { sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' sh 'make setup-kong-build-tools' - sh 'RESTY_IMAGE_TAG=bionic make release' - sh 'RESTY_IMAGE_TAG=focal make release' + sh 'make RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=9 release' + sh 'make RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=10 release' + sh 'make RESTY_IMAGE_BASE=debian RESTY_IMAGE_TAG=11 release' + sh 'make RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=16.04 release' + sh 'make RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=18.04 release' + sh 'make RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=20.04 release' } } - stage('Ubuntu Xenial') { + stage('SRC & Alpine') { agent { node { label 'bionic' } } environment { - PACKAGE_TYPE = 'deb' - RESTY_IMAGE_BASE = 'ubuntu' - RESTY_IMAGE_TAG = 'xenial' - CACHE = 'false' - UPDATE_CACHE = 'true' - USER = 'travis' KONG_SOURCE_LOCATION = "${env.WORKSPACE}" KONG_BUILD_TOOLS_LOCATION = "${env.WORKSPACE}/../kong-build-tools" + GITHUB_SSH_KEY = credentials('github_bot_ssh_key') + PACKAGE_TYPE = "rpm" AWS_ACCESS_KEY = credentials('AWS_ACCESS_KEY') AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY') } steps { sh 'echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin || true' sh 'make setup-kong-build-tools' - sh 'DOCKER_MACHINE_ARM64_NAME="jenkins-kong-"`cat /proc/sys/kernel/random/uuid` make release' - } - post { - cleanup { - dir('../kong-build-tools'){ sh 'make cleanup-build' } - } + sh 'make RESTY_IMAGE_BASE=src RESTY_IMAGE_TAG=src PACKAGE_TYPE=src release' + sh 'make RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3.10 PACKAGE_TYPE=apk DOCKER_MACHINE_ARM64_NAME="kong-"`cat /proc/sys/kernel/random/uuid` release' } } } } - stage('Post Packaging Steps') { + stage('Post Release Steps') { when { beforeAgent true allOf {