Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions pmm/pmm-submodules.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ pipeline {
choices: ['el9', 'el7'],
description: 'Select the OS to build for',
name: 'BUILD_OS')
booleanParam(
defaultValue: false,
description: 'Build GSSAPI dynamic client tarballs for OL8 and OL9 (amd64)',
name: 'GSSAPI_DYNAMIC_TARBALLS')
}
environment {
PMM_VERSION = sh(returnStdout: true, script: "cat VERSION").trim()
Expand Down Expand Up @@ -46,6 +50,7 @@ pipeline {
string(name: 'CHANGE_URL', value: "${CHANGE_URL}"),
string(name: 'CHANGE_ID', value: "${CHANGE_ID}"),
string(name: 'BRANCH_NAME', value: "${BRANCH_NAME}"),
booleanParam(name: 'GSSAPI_DYNAMIC_TARBALLS', value: params.GSSAPI_DYNAMIC_TARBALLS),
]
}
}
Expand Down
71 changes: 69 additions & 2 deletions pmm/v3/pmm3-submodules.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ pipeline {
defaultValue: '',
description: 'Change Request Number for pmm-submodules repository PR',
name: 'BRANCH_NAME')
booleanParam(
defaultValue: false,
description: 'Build GSSAPI dynamic client tarballs for OL8 and OL9 (amd64)',
name: 'GSSAPI_DYNAMIC_TARBALLS')
}
environment {
PATH_TO_SCRIPTS = 'sources/pmm/src/github.com/percona/pmm/build/scripts'
Expand Down Expand Up @@ -114,6 +118,58 @@ pipeline {
}
}
}
stage('Build dynamic client binary for OL8 (GSSAPI)') {
when { expression { return params.GSSAPI_DYNAMIC_TARBALLS } }
steps {
withCredentials([aws(credentialsId: 'AMI/OVF')]) {
sh '''
set -o errexit

aws ecr-public get-login-password --region us-east-1 | docker login -u AWS --password-stdin public.ecr.aws/e7j3v3n0

export RPMBUILD_DOCKER_IMAGE=public.ecr.aws/e7j3v3n0/rpmbuild:3-ol8
export BUILD_TYPE=dynamic
export OS_VARIANT=ol8

${PATH_TO_SCRIPTS}/build-client-binary

aws s3 cp \
--acl public-read \
results/tarball/pmm-client-*-dynamic-ol8.tar.gz \
s3://pmm-build-cache/PR-BUILDS/pmm-client/pmm-client-dynamic-ol8-${BRANCH_NAME}-${SHORTENED_COMMIT}.tar.gz
'''
}
script {
env.CLIENT_URL_DYNAMIC_OL8 = sh (script: 'echo "https://s3.us-east-2.amazonaws.com/pmm-build-cache/PR-BUILDS/pmm-client/pmm-client-dynamic-ol8-${BRANCH_NAME}-${SHORTENED_COMMIT}.tar.gz" | tee CLIENT_URL_DYNAMIC_OL8', returnStdout: true).trim()
}
}
}
stage('Build dynamic client binary for OL9 (GSSAPI)') {
when { expression { return params.GSSAPI_DYNAMIC_TARBALLS } }
steps {
withCredentials([aws(credentialsId: 'AMI/OVF')]) {
sh '''
set -o errexit

aws ecr-public get-login-password --region us-east-1 | docker login -u AWS --password-stdin public.ecr.aws/e7j3v3n0

export RPMBUILD_DOCKER_IMAGE=public.ecr.aws/e7j3v3n0/rpmbuild:3
export BUILD_TYPE=dynamic
export OS_VARIANT=ol9

${PATH_TO_SCRIPTS}/build-client-binary

aws s3 cp \
--acl public-read \
results/tarball/pmm-client-*-dynamic-ol9.tar.gz \
s3://pmm-build-cache/PR-BUILDS/pmm-client/pmm-client-dynamic-ol9-${BRANCH_NAME}-${SHORTENED_COMMIT}.tar.gz
'''
}
script {
env.CLIENT_URL_DYNAMIC_OL9 = sh (script: 'echo "https://s3.us-east-2.amazonaws.com/pmm-build-cache/PR-BUILDS/pmm-client/pmm-client-dynamic-ol9-${BRANCH_NAME}-${SHORTENED_COMMIT}.tar.gz" | tee CLIENT_URL_DYNAMIC_OL9', returnStdout: true).trim()
}
}
}
stage('Build client docker') {
steps {
withCredentials([usernamePassword(credentialsId: 'hub.docker.com', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
Expand Down Expand Up @@ -194,8 +250,17 @@ pipeline {
def FB_COMMIT_HASH = sh(returnStdout: true, script: "cat fbCommitSha").trim()
def STAGING_URL = "https://pmm.cd.percona.com/job/pmm3-aws-staging-start/parambuild/"

def message = "Server docker: ${IMAGE}\nClient docker: ${CLIENT_IMAGE}\nWatchtower docker: perconalab/pmm-watchtower-fb:${BRANCH_NAME}-${SHORTENED_COMMIT}\nClient tarball: ${CLIENT_URL}"
if (params.GSSAPI_DYNAMIC_TARBALLS && env.CLIENT_URL_DYNAMIC_OL8) {
message += "\nClient dynamic OL8 tarball: ${CLIENT_URL_DYNAMIC_OL8}"
}
if (params.GSSAPI_DYNAMIC_TARBALLS && env.CLIENT_URL_DYNAMIC_OL9) {
message += "\nClient dynamic OL9 tarball: ${CLIENT_URL_DYNAMIC_OL9}"
}
message += "\nStaging instance: ${STAGING_URL}?DOCKER_VERSION=${IMAGE}&CLIENT_VERSION=${CLIENT_URL}"

def payload = [
body: "Server docker: ${IMAGE}\nClient docker: ${CLIENT_IMAGE}\nWatchtower docker: perconalab/pmm-watchtower-fb:${BRANCH_NAME}-${SHORTENED_COMMIT}\nClient tarball: ${CLIENT_URL}\nStaging instance: ${STAGING_URL}?DOCKER_VERSION=${IMAGE}&CLIENT_VERSION=${CLIENT_URL}"
body: message
]
writeFile(file: 'body.json', text: JsonOutput.toJson(payload))
sh '''
Expand All @@ -217,7 +282,9 @@ pipeline {
inputs: [
pmm_server_image: "${IMAGE}", pmm_client_image: "${CLIENT_IMAGE}", sha: "${FB_COMMIT_HASH}",
pmm_qa_branch: "${PMM_QA_GIT_BRANCH}", pmm_ui_tests_branch: "${PMM_UI_TESTS_GIT_BRANCH}",
pmm_client_version: "${CLIENT_URL}"
pmm_client_version: "${CLIENT_URL}",
pmm_client_dynamic_ol8: params.GSSAPI_DYNAMIC_TARBALLS && env.CLIENT_URL_DYNAMIC_OL8 ? env.CLIENT_URL_DYNAMIC_OL8 : '',
pmm_client_dynamic_ol9: params.GSSAPI_DYNAMIC_TARBALLS && env.CLIENT_URL_DYNAMIC_OL9 ? env.CLIENT_URL_DYNAMIC_OL9 : ''
]
]
writeFile(file: 'body.json', text: JsonOutput.toJson(payload))
Expand Down