Skip to content

Commit

Permalink
feat: artifact name from download URL (#45)
Browse files Browse the repository at this point in the history
* feat: use Jenkins build number to track deployment run on server

* feat: artifact name from download url

* fix: set default ansibleCollectionBranchTag to v2.0.1

---------

Co-authored-by: GraceRuan <[email protected]>
  • Loading branch information
andrwils and GraceRuan authored May 7, 2024
1 parent 5afad65 commit b6f7179
Showing 1 changed file with 40 additions and 28 deletions.
68 changes: 40 additions & 28 deletions pipelines/shared/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,9 @@ pipeline {
GIT_REPO = "${params.gitRepo}"
GIT_BRANCH = "${params.configBranch != null && params.configBranch != "" ? params.configBranch : params.gitTag != null && params.gitTag != "" ? params.gitTag : params.gitBranch}"
GITHUB_PRIVATE_REPO = "${params.githubToken != null && params.githubToken != "" ? 'true' : ''}"
ARTIFACT_NAME = "${params.artifactName}"
ARTIFACT_SHA256 = "${params.artifactSha256}"
DOWNLOAD_URL = "${params.downloadUrl}"
DOWNLOAD_TYPE =" ${params.downloadType}"
ARTIFACT_SHA256 = "${params.artifactSha256}"
}
steps {
script {
Expand All @@ -44,15 +43,11 @@ pipeline {
def artifact_download_sha256 = sh(
returnStdout: true,
script: '''
ARTIFACT_NAME=$(echo ${DOWNLOAD_URL##*/})
cd downloads
ARTIFACT_DOWNLOAD_NAME=$(echo ${DOWNLOAD_URL##*/})
REGEX="SNAPSHOT"
if [[ "${ARTIFACT_NAME}" =~ "${REGEX}" ]]; then
mv "${ARTIFACT_DOWNLOAD_NAME}" "${ARTIFACT_NAME}"
fi
sha256=($(sha256sum "${ARTIFACT_NAME}"))
echo "${sha256}"
'''
'''
)
}
}
Expand Down Expand Up @@ -85,9 +80,6 @@ pipeline {
label Podman.AGENT_LABEL_APP
}
environment {
PODMAN_ARTIFACT_NAME = "${params.artifactName}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
PROJECT = "${params.project}"
COMPONENT = "${params.component}"
GIT_REPO = "${params.gitRepo}"
Expand All @@ -98,7 +90,7 @@ pipeline {
BROKER_URL = "https://nr-broker.apps.silver.devops.gov.bc.ca"
HTTP_PROXY = "http://test-forwardproxy.nrs.bcgov:23128"
PODMAN_ANSIBLE_INVENTORY_PATH = "${params.devInventoryPath}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v1.0.5"}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v2.0.1"}"
PODMAN_ANSIBLE_COLLECTION_URL = "github.com/bcgov/nr-polaris-collection.git#polaris/deploy${env.ANSIBLE_COLLECTION_VERSION}"
PODMAN_ANSIBLE_COLLECTION_PATH = "./collections/ansible_collections"
GIT_CREDS = credentials('ci-user')
Expand All @@ -110,6 +102,8 @@ pipeline {
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
DOWNLOAD_TYPE =" ${params.downloadType}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
}
steps {
script {
Expand All @@ -131,13 +125,20 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/jdk_cacerts_pass", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/artifactory", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_NUMBER = env.BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: env.REGISTRY_USERNAME, password: REGISTRY_USERNAME],[var: env.REGISTRY_PASSWORD, password: REGISTRY_PASSWORD]]]) {
sh 'cd downloads ; curl -u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" -LO "${DOWNLOAD_URL}" ; ls -l *; cd ..'
}
}
env.PODMAN_ARTIFACT_NAME = sh(
returnStdout: true,
script: '''
ARTIFACT_NAME=$(echo ${DOWNLOAD_URL##*/})
echo -n "${ARTIFACT_NAME}"
'''
)
def downloaded_artifact_sha256 = sh(
returnStdout: true,
script: '''
Expand Down Expand Up @@ -216,10 +217,6 @@ pipeline {
label Podman.AGENT_LABEL_APP
}
environment {
PODMAN_ARTIFACT_NAME = "${params.artifactName}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
TARGET_ENV = "${params.targetEnv}"
PROJECT = "${params.project}"
COMPONENT = "${params.component}"
GIT_REPO = "${params.gitRepo}"
Expand All @@ -230,7 +227,7 @@ pipeline {
BROKER_URL = "https://nr-broker.apps.silver.devops.gov.bc.ca"
HTTP_PROXY = "http://test-forwardproxy.nrs.bcgov:23128"
PODMAN_ANSIBLE_INVENTORY_PATH = "${params.testInventoryPath}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v1.0.5"}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v2.0.1"}"
PODMAN_ANSIBLE_COLLECTION_URL = "github.com/bcgov/nr-polaris-collection.git#polaris/deploy${env.ANSIBLE_COLLECTION_VERSION}"
PODMAN_ANSIBLE_COLLECTION_PATH = "./collections/ansible_collections"
GIT_CREDS = credentials('ci-user')
Expand All @@ -242,6 +239,8 @@ pipeline {
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
DOWNLOAD_TYPE =" ${params.downloadType}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
}
steps {
script {
Expand All @@ -263,13 +262,20 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/jdk_cacerts_pass", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/artifactory", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_NUMBER = env.BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: env.REGISTRY_USERNAME, password: REGISTRY_USERNAME],[var: env.REGISTRY_PASSWORD, password: REGISTRY_PASSWORD]]]) {
sh 'cd downloads ; curl -u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" -LO "${DOWNLOAD_URL}" ; ls -l *; cd ..'
}
}
env.PODMAN_ARTIFACT_NAME = sh(
returnStdout: true,
script: '''
ARTIFACT_NAME=$(echo ${DOWNLOAD_URL##*/})
echo -n "${ARTIFACT_NAME}"
'''
)
def downloaded_artifact_sha256 = sh(
returnStdout: true,
script: '''
Expand All @@ -284,7 +290,7 @@ pipeline {
echo "SHA256 checksum failed"
currentBuild.result = 'ABORTED'
error('Quitting')
}
}
intention.startAction("configure")
def vaultAppToken = intention.provisionToken("configure", APP_ROLE_ID)
def vaultApp = new Vault(vaultAppToken)
Expand Down Expand Up @@ -359,9 +365,6 @@ pipeline {
label Podman.AGENT_LABEL_APP
}
environment {
PODMAN_ARTIFACT_NAME = "${params.artifactName}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
PROJECT = "${params.project}"
COMPONENT = "${params.component}"
GIT_REPO = "${params.gitRepo}"
Expand All @@ -372,7 +375,7 @@ pipeline {
BROKER_URL = "https://nr-broker.apps.silver.devops.gov.bc.ca"
HTTP_PROXY = "http://test-forwardproxy.nrs.bcgov:23128"
PODMAN_ANSIBLE_INVENTORY_PATH = "${params.prodInventoryPath}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v1.0.5"}"
ANSIBLE_COLLECTION_VERSION = "${params.ansibleCollectionBranchTag != null && params.ansibleCollectionBranchTag != "" ? ",${params.ansibleCollectionBranchTag}" : ",v2.0.1"}"
PODMAN_ANSIBLE_COLLECTION_URL = "github.com/bcgov/nr-polaris-collection.git#polaris/deploy${env.ANSIBLE_COLLECTION_VERSION}"
PODMAN_ANSIBLE_COLLECTION_PATH = "./collections/ansible_collections"
GIT_CREDS = credentials('ci-user')
Expand All @@ -384,6 +387,8 @@ pipeline {
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
DOWNLOAD_TYPE =" ${params.downloadType}"
PODMAN_ARTIFACT_SHA256 = "${params.artifactSha256}"
PODMAN_PROJECT_VERSION = "${params.projectVersion}"
}
steps {
script {
Expand All @@ -405,13 +410,20 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/jdk_cacerts_pass", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/artifactory", env)
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_NUMBER = env.BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
if (DOWNLOAD_TYPE.toUpperCase().trim() == 'ARTIFACTORY') {
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: env.REGISTRY_USERNAME, password: REGISTRY_USERNAME],[var: env.REGISTRY_PASSWORD, password: REGISTRY_PASSWORD]]]) {
sh 'cd downloads ; curl -u "${REGISTRY_USERNAME}:${REGISTRY_PASSWORD}" -LO "${DOWNLOAD_URL}" ; ls -l *; cd ..'
}
}
env.PODMAN_ARTIFACT_NAME = sh(
returnStdout: true,
script: '''
ARTIFACT_NAME=$(echo ${DOWNLOAD_URL##*/})
echo -n "${ARTIFACT_NAME}"
'''
)
def downloaded_artifact_sha256 = sh(
returnStdout: true,
script: '''
Expand Down

0 comments on commit b6f7179

Please sign in to comment.