fix git tagging
Partial-Bug: PROD-21783 (PROD:21783)
Change-Id: Idfabb35f75e97436006e818a34536081753804a9
diff --git a/release-mcp-version.groovy b/release-mcp-version.groovy
index 744936f..ea528ed 100644
--- a/release-mcp-version.groovy
+++ b/release-mcp-version.groovy
@@ -20,88 +20,88 @@
* NOTIFY_RECIPIENTS
* NOTIFY_TEXT
*
- */
+*/
common = new com.mirantis.mk.Common()
git = new com.mirantis.mk.Git()
def triggerAptlyPromoteJob(aptlyUrl, components, diffOnly, dumpPublish, packages, recreate, source, storages, target){
build job: "aptly-promote-all-testing-stable", parameters: [
- [$class: 'StringParameterValue', name: 'APTLY_URL', value: aptlyUrl],
- [$class: 'StringParameterValue', name: 'COMPONENTS', value: components],
- [$class: 'BooleanParameterValue', name: 'DIFF_ONLY', value: diffOnly],
- [$class: 'BooleanParameterValue', name: 'DUMP_PUBLISH', value: dumpPublish],
- [$class: 'StringParameterValue', name: 'PACKAGES', value: packages],
- [$class: 'BooleanParameterValue', name: 'RECREATE', value: recreate],
- [$class: 'StringParameterValue', name: 'SOURCE', value: source],
- [$class: 'StringParameterValue', name: 'STORAGES', value: storages],
- [$class: 'StringParameterValue', name: 'TARGET', value: target]
+ [$class: 'StringParameterValue', name: 'APTLY_URL', value: aptlyUrl],
+ [$class: 'StringParameterValue', name: 'COMPONENTS', value: components],
+ [$class: 'BooleanParameterValue', name: 'DIFF_ONLY', value: diffOnly],
+ [$class: 'BooleanParameterValue', name: 'DUMP_PUBLISH', value: dumpPublish],
+ [$class: 'StringParameterValue', name: 'PACKAGES', value: packages],
+ [$class: 'BooleanParameterValue', name: 'RECREATE', value: recreate],
+ [$class: 'StringParameterValue', name: 'SOURCE', value: source],
+ [$class: 'StringParameterValue', name: 'STORAGES', value: storages],
+ [$class: 'StringParameterValue', name: 'TARGET', value: target]
]
}
def triggerDockerMirrorJob(dockerCredentials, dockerRegistryUrl, targetTag, imageList, sourceImageTag) {
build job: "docker-images-mirror", parameters: [
- [$class: 'StringParameterValue', name: 'TARGET_REGISTRY_CREDENTIALS_ID', value: dockerCredentials],
- [$class: 'StringParameterValue', name: 'REGISTRY_URL', value: dockerRegistryUrl],
- [$class: 'StringParameterValue', name: 'IMAGE_TAG', value: targetTag],
- [$class: 'StringParameterValue', name: 'IMAGE_LIST', value: imageList],
- [$class: 'StringParameterValue', name: 'SOURCE_IMAGE_TAG', value: sourceImageTag]
+ [$class: 'StringParameterValue', name: 'TARGET_REGISTRY_CREDENTIALS_ID', value: dockerCredentials],
+ [$class: 'StringParameterValue', name: 'REGISTRY_URL', value: dockerRegistryUrl],
+ [$class: 'StringParameterValue', name: 'IMAGE_TAG', value: targetTag],
+ [$class: 'StringParameterValue', name: 'IMAGE_LIST', value: imageList],
+ [$class: 'StringParameterValue', name: 'SOURCE_IMAGE_TAG', value: sourceImageTag]
]
}
def triggerMirrorRepoJob(snapshotId, snapshotName) {
build job: "mirror-snapshot-name-all", parameters: [
- [$class: 'StringParameterValue', name: 'SNAPSHOT_NAME', value: snapshotName],
- [$class: 'StringParameterValue', name: 'SNAPSHOT_ID', value: snapshotId]
+ [$class: 'StringParameterValue', name: 'SNAPSHOT_NAME', value: snapshotName],
+ [$class: 'StringParameterValue', name: 'SNAPSHOT_ID', value: snapshotId]
]
}
-def triggerGitTagJob(gitRepoList, gitCredentials, tag, source_tag) {
+def triggerGitTagJob(gitRepoList, gitCredentials, tag, sourceTag) {
build job: "tag-git-repos-stable", parameters: [
- [$class: 'StringParameterValue', name: 'GIT_REPO_LIST', value: gitRepoList],
- [$class: 'StringParameterValue', name: 'GIT_CREDENTIALS', value: gitCredentials],
- [$class: 'StringParameterValue', name: 'TAG', value: tag],
- [$class: 'StringParameterValue', name: 'SOURCE_TAG', value: source_tag],
+ [$class: 'StringParameterValue', name: 'GIT_REPO_LIST', value: gitRepoList],
+ [$class: 'StringParameterValue', name: 'GIT_CREDENTIALS', value: gitCredentials],
+ [$class: 'StringParameterValue', name: 'TAG', value: tag],
+ [$class: 'StringParameterValue', name: 'SOURCE_TAG', value: sourceTag]
]
}
timeout(time: 12, unit: 'HOURS') {
- node() {
- try {
- stage("Promote"){
- if(RELEASE_APTLY.toBoolean())
- {
- common.infoMsg("Promoting Aptly")
- triggerAptlyPromoteJob(APTLY_URL, 'all', false, true, 'all', false, "(.*)/${SOURCE_REVISION}", APTLY_STORAGES, "{0}/${TARGET_REVISION}")
- }
+ node() {
+ try {
+ stage("Promote"){
+ if(RELEASE_APTLY.toBoolean())
+ {
+ common.infoMsg("Promoting Aptly")
+ triggerAptlyPromoteJob(APTLY_URL, 'all', false, true, 'all', false, "(.*)/${SOURCE_REVISION}", APTLY_STORAGES, "{0}/${TARGET_REVISION}")
+ }
- if(RELEASE_DEB_MIRRORS.toBoolean()){
- common.infoMsg("Promoting Debmirrors")
- triggerMirrorRepoJob(SOURCE_REVISION, TARGET_REVISION)
- }
+ if(RELEASE_DEB_MIRRORS.toBoolean()){
+ common.infoMsg("Promoting Debmirrors")
+ triggerMirrorRepoJob(SOURCE_REVISION, TARGET_REVISION)
+ }
- if(RELEASE_DOCKER.toBoolean())
- {
- common.infoMsg("Promoting Docker images")
- triggerDockerMirrorJob(DOCKER_CREDENTIALS, DOCKER_URL, TARGET_REVISION, DOCKER_IMAGES, SOURCE_REVISION)
- }
+ if(RELEASE_DOCKER.toBoolean())
+ {
+ common.infoMsg("Promoting Docker images")
+ triggerDockerMirrorJob(DOCKER_CREDENTIALS, DOCKER_URL, TARGET_REVISION, DOCKER_IMAGES, SOURCE_REVISION)
+ }
- if(RELEASE_GIT.toBoolean())
- {
- common.infoMsg("Promoting Git repositories")
- triggerGitTagJob(GIT_REPO_LIST, GIT_CREDENTIALS, TARGET_REVISION)
+ if(RELEASE_GIT.toBoolean())
+ {
+ common.infoMsg("Promoting Git repositories")
+ triggerGitTagJob(GIT_REPO_LIST, GIT_CREDENTIALS, TARGET_REVISION, SOURCE_REVISION)
- }
- if (EMAIL_NOTIFY.toBoolean()) {
- emailext(to: NOTIFY_RECIPIENTS,
- body: NOTIFY_TEXT,
- subject: "MCP Promotion has been done")
- }
- }
- } catch (Throwable e) {
+ }
+ if (EMAIL_NOTIFY.toBoolean()) {
+ emailext(to: NOTIFY_RECIPIENTS,
+ body: NOTIFY_TEXT,
+ subject: "MCP Promotion has been done")
+ }
+ }
+ } catch (Throwable e) {
// If there was an error or exception thrown, the build failed
currentBuild.result = "FAILURE"
throw e
+ }
}
- }
-}
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/tag-git-repos.groovy b/tag-git-repos.groovy
index 68229a6..dabbb7f 100644
--- a/tag-git-repos.groovy
+++ b/tag-git-repos.groovy
@@ -1,55 +1,58 @@
+
/**
- *
- * Tag Git repositories
- *
- * Expected parameters:
- * GIT_REPO_LIST
- * GIT_CREDENTIALS
- * TAG
- * SOURCE_TAG initial commit\tag to be tagged with TAG
- *
- */
+*
+* Tag Git repositories
+*
+* Expected parameters:
+* GIT_REPO_LIST
+* GIT_CREDENTIALS
+* TAG
+* SOURCE_TAG initial commit\tag to be tagged with TAG
+*
+*/
common = new com.mirantis.mk.Common()
git = new com.mirantis.mk.Git()
def gitRepoAddTag(repoURL, repoName, tag, credentials, ref = "HEAD"){
- git.checkoutGitRepository(repoName, repoURL, "master", credentials)
- dir(repoName) {
- sh "git tag -f -a ${tag} ${ref} -m \"Release of mcp version ${tag}\""
- sshagent([credentials]) {
- sh "git push -f origin ${tag}:refs/tags/${tag}"
- }
+ common.infoMsg("Tagging: ${repoURL} ${ref} => ${tag}")
+ git.checkoutGitRepository(repoName, repoURL, "master", credentials)
+ dir(repoName) {
+ sh "git tag -f -a ${tag} ${ref} -m \"Release of mcp version ${tag}\""
+ sshagent([credentials]) {
+ sh "git push -f origin ${tag}:refs/tags/${tag}"
}
+ }
}
timeout(time: 12, unit: 'HOURS') {
- node() {
- try {
- def repos = GIT_REPO_LIST.tokenize('\n')
- def repoUrl, repoName, repoCommit, repoArray
- for (repo in repos){
- if(repo.startsWith('#'))
- common.warningMsg("Skipping:" + repo.toString())
- continue
- if(repo.trim().indexOf(' ') == -1){
- throw new IllegalArgumentException("Wrong format of repository and commit input")
- }
- repoArray = repo.trim().tokenize(' ')
- repoName = repoArray[0]
- repoUrl = repoArray[1]
- repoCommit = repoArray[2]
- if (repoCommit.contains('SUBS_SOURCE_REF')) {
- common.warningMsg("Replacing SUBS_SOURCE_REF => ${SOURCE_TAG}")
- repoCommit.replace('SUBS_SOURCE_REF', SOURCE_TAG
- )
- }
- gitRepoAddTag(repoUrl, repoName, TAG, GIT_CREDENTIALS, repoCommit)
- }
- } catch (Throwable e) {
+ node() {
+ try {
+ def repos = GIT_REPO_LIST.tokenize('\n')
+ def repoUrl, repoName, repoCommit, repoArray
+ for (repo in repos){
+ if(repo.startsWith('#')){
+ common.warningMsg("Skipping repo ${repo}")
+ continue
+ }
+ if(repo.trim().indexOf(' ') == -1){
+ throw new IllegalArgumentException("Wrong format of repository and commit input")
+ }
+ repoArray = repo.trim().tokenize(' ')
+ repoName = repoArray[0]
+ repoUrl = repoArray[1]
+ repoCommit = repoArray[2]
+ if (repoCommit.contains('SUBS_SOURCE_REF')) {
+ common.warningMsg("Replacing SUBS_SOURCE_REF => ${SOURCE_TAG}")
+ repoCommit.replace('SUBS_SOURCE_REF', SOURCE_TAG
+ )
+ }
+ gitRepoAddTag(repoUrl, repoName, TAG, GIT_CREDENTIALS, repoCommit)
+ }
+ } catch (Throwable e) {
// If there was an error or exception thrown, the build failed
currentBuild.result = "FAILURE"
throw e
+ }
}
- }
-}
+ }