Skip to content

Commit

Permalink
Feat/artifact deploy (#40)
Browse files Browse the repository at this point in the history
* test on download war

* fix: dowload url null point

* fix: download url in step script

* fix: remove useless env

* fix: download url contains method

* fix: add DOWNLOAD_URL in dev deploy

* fix: mask artifactory username and password

* feat: dev deployment

* feat: set test and prod for artifactory deployment path
  • Loading branch information
GraceRuan authored Mar 27, 2024
1 parent 461c08e commit ad3844c
Showing 1 changed file with 39 additions and 15 deletions.
54 changes: 39 additions & 15 deletions pipelines/shared/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,31 @@ pipeline {
env.GITHUB_TOKEN = "${params.githubToken}"
wrap([$class: 'MaskPasswordsBuildWrapper', varPasswordPairs: [[var: env.GITHUB_TOKEN, password: GITHUB_TOKEN]]]) {
sh 'git clone --branch ${GIT_BRANCH} https://${GITHUB_USER}:${GITHUB_TOKEN}@${GIT_REPO} app'
sh 'cd downloads ; curl -LO "${DOWNLOAD_URL}" -H "Authorization: token ${GITHUB_TOKEN}"'
if (DOWNLOAD_URL.contains('github')) {
sh 'cd downloads ; curl -LO "${DOWNLOAD_URL}" -H "Authorization: token ${GITHUB_TOKEN}"'
}
}
} else {
sh 'git clone --branch ${GIT_BRANCH} https://${GIT_REPO} app'
sh 'cd downloads ; curl -LO ${DOWNLOAD_URL}'
if (DOWNLOAD_URL.contains('github')) {
sh 'cd downloads ; curl -LO ${DOWNLOAD_URL}'
}
}
if (DOWNLOAD_URL.contains('github')) {
def artifact_download_sha256 = sh(
returnStdout: true,
script: '''
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}"
'''
)
}
def artifact_download_sha256 = sh(
returnStdout: true,
script: '''
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 @@ -100,6 +106,7 @@ pipeline {
AUTHFILE = "auth.json"
CAUSE_USER_ID = "${params.userId != null && params.userId != "" ? params.userId : "github@internal"}"
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
}
steps {
script {
Expand All @@ -123,6 +130,11 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_URL.contains('artifacts')) {
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 ..'
}
}
intention.startAction("configure")
def vaultAppToken = intention.provisionToken("configure", APP_ROLE_ID)
def vaultApp = new Vault(vaultAppToken)
Expand Down Expand Up @@ -209,6 +221,7 @@ pipeline {
AUTHFILE = "auth.json"
CAUSE_USER_ID = "${params.USER_ID}"
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
}
steps {
script {
Expand All @@ -232,6 +245,11 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_URL.contains('artifacts')) {
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 ..'
}
}
intention.startAction("configure")
def vaultAppToken = intention.provisionToken("configure", APP_ROLE_ID)
def vaultApp = new Vault(vaultAppToken)
Expand Down Expand Up @@ -328,6 +346,7 @@ pipeline {
AUTHFILE = "auth.json"
CAUSE_USER_ID = "${params.USER_ID}"
INTENTION_ID = "${params.intentionId}"
DOWNLOAD_URL = "${params.downloadUrl}"
}
steps {
script {
Expand All @@ -351,6 +370,11 @@ pipeline {
vault.readToObject("apps/data/prod/jenkins/jenkins-apps/cdua", env)
env.PODMAN_BUILD_NUMBER = env.ARTIFACTORY_BUILD_NUMBER
env.PODMAN_BUILD_URL = env.BUILD_URL
if (DOWNLOAD_URL.contains('artifacts')) {
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 ..'
}
}
intention.startAction("configure")
def vaultAppToken = intention.provisionToken("configure", APP_ROLE_ID)
def vaultApp = new Vault(vaultAppToken)
Expand Down

0 comments on commit ad3844c

Please sign in to comment.