|
@@ -10,6 +10,10 @@ pipeline {
|
|
|
options{
|
|
|
disableConcurrentBuilds()
|
|
|
}
|
|
|
+ parameters {
|
|
|
+ booleanParam(name: 'auto_run_docker_nginx_build_job', defaultValue: false, description: '自动运行docker构建任务')
|
|
|
+ booleanParam(name: 'auto_run_docker_nginx_pull_job', defaultValue: false, description: '自动运行docker发布任务')
|
|
|
+ }
|
|
|
|
|
|
triggers {
|
|
|
GenericTrigger(
|
|
@@ -33,6 +37,23 @@ pipeline {
|
|
|
// 实现任务的具体流程
|
|
|
stage('初始化构建环境') {
|
|
|
steps {
|
|
|
+ echo "env.ref: ${env.ref}"
|
|
|
+ script {
|
|
|
+ if (env.ref) {
|
|
|
+ echo "任务来源git Webhooks开启自动构建并发布docker"
|
|
|
+ env.auto_run_docker_nginx_build_job = "true"
|
|
|
+ env.auto_run_docker_nginx_pull_job = "true"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ echo "自动运行docker构建任务: ${env.auto_run_docker_nginx_build_job}"
|
|
|
+ echo "自动运行docker发布任务: ${env.auto_run_docker_nginx_pull_job}"
|
|
|
+
|
|
|
+ // XXX: 此处需注意类型
|
|
|
+ // params.auto_run_docker_nginx_build_job === false
|
|
|
+ // env.auto_run_docker_nginx_build_job === "false"
|
|
|
+
|
|
|
+
|
|
|
+ // echo "params.auto_run_docker_nginx_pull_job: ${params.auto_run_docker_nginx_pull_job}"
|
|
|
// echo 'env.BRANCH_NAME: ' + env.BRANCH_NAME
|
|
|
// echo 'env.BUILD_NUMBER: ' + env.BUILD_NUMBER
|
|
|
// echo 'env.BUILD_ID: ' + env.BUILD_ID
|
|
@@ -75,53 +96,64 @@ pipeline {
|
|
|
}
|
|
|
stage('构建docker镜像') {
|
|
|
when {
|
|
|
- anyOf {
|
|
|
- branch 'develop'
|
|
|
- // branch 'uat'
|
|
|
- branch 'master'
|
|
|
- expression { BRANCH_NAME ==~ /^(release\/.+)$/ }
|
|
|
+ allOf {
|
|
|
+ expression { env.auto_run_docker_nginx_build_job == "true" }
|
|
|
+ anyOf {
|
|
|
+ branch "develop"
|
|
|
+ // branch 'uat'
|
|
|
+ // branch "master"
|
|
|
+ // branch "release/*"
|
|
|
+ // expression { BRANCH_NAME ==~ /^(release\/.+)$/ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
environment {
|
|
|
- BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
|
|
|
+ BUILD_DOCKER_JOB = "cloud_build_docker_nginx/test"
|
|
|
}
|
|
|
steps {
|
|
|
- // echo '开始构建docker镜像'
|
|
|
+ echo '开始构建docker镜像'
|
|
|
script {
|
|
|
- if (env.BRANCH_NAME == 'master') {
|
|
|
- BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_prod'
|
|
|
+ if (env.BRANCH_NAME == "master") {
|
|
|
+ env.BUILD_DOCKER_JOB = "cloud_build_docker_nginx/prod"
|
|
|
} else if (env.BRANCH_NAME ==~ /^(release\/.+)$/) {
|
|
|
- BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_pre'
|
|
|
+ env.BUILD_DOCKER_JOB = "cloud_build_docker_nginx/uat"
|
|
|
} else {
|
|
|
- BUILD_DOCKER_JOB = 'cloud_build_docker_nginx_powerful_test'
|
|
|
+ env.BUILD_DOCKER_JOB = "cloud_build_docker_nginx/test"
|
|
|
}
|
|
|
}
|
|
|
- build job: BUILD_DOCKER_JOB, parameters: [string(name: 'version', value: env.BUILD_TAG), extendedChoice(name: 'service', value: 'manage_H5')]
|
|
|
+ echo "build job: ${env.BUILD_DOCKER_JOB}"
|
|
|
+ build job: env.BUILD_DOCKER_JOB, parameters: [string(name: 'version', value: env.BUILD_TAG), extendedChoice(name: 'service', value: 'manage_H5'), booleanParam(name: 'auto_run_docker_nginx_pull_job', value: false), string(name: 'manage_H5_workspace', value: env.WORKSPACE)]
|
|
|
}
|
|
|
}
|
|
|
stage('发布docker镜像') {
|
|
|
when {
|
|
|
- anyOf {
|
|
|
- // branch 'master'
|
|
|
- // branch 'uat'
|
|
|
- branch 'develop'
|
|
|
+ allOf {
|
|
|
+ expression { env.auto_run_docker_nginx_build_job == "true" }
|
|
|
+ expression { env.auto_run_docker_nginx_pull_job == "true" }
|
|
|
+ anyOf {
|
|
|
+ branch 'develop'
|
|
|
+ // branch 'uat'
|
|
|
+ // branch 'master'
|
|
|
+ // expression { BRANCH_NAME ==~ /^(release\/.+)$/ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
environment {
|
|
|
- PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
+ PULL_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
}
|
|
|
steps {
|
|
|
- // echo '开始构建docker镜像'
|
|
|
- // script {
|
|
|
- // if ( env.BRANCH_NAME == 'master' ) {
|
|
|
- // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
- // } else if ( env.BRANCH_NAME == 'uat' ) {
|
|
|
- // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
- // } else {
|
|
|
- // PUBLISH_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
- // }
|
|
|
- // }
|
|
|
- build job: PUBLISH_DOCKER_JOB, parameters: [extendedChoice(name: 'service', value: 'cloud-nginx'), string(name: 'version', value: env.BUILD_TAG), string(name: 'replicas', value: '3'), string(name: 'memory', value: '2G'), string(name: 'cpu', value: '2')]
|
|
|
+ echo '开始发布docker镜像'
|
|
|
+ script {
|
|
|
+ if ( env.BRANCH_NAME == 'master' ) {
|
|
|
+ // env.PULL_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
+ } else if ( env.BRANCH_NAME == 'uat' ) {
|
|
|
+ env.PULL_DOCKER_JOB = 'cloud_publish_docker_pre'
|
|
|
+ } else {
|
|
|
+ env.PULL_DOCKER_JOB = 'cloud_publish_docker_powerful_test'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ echo "build job: ${env.PULL_DOCKER_JOB}"
|
|
|
+ build job: env.PULL_DOCKER_JOB, parameters: [extendedChoice(name: 'service', value: 'cloud-nginx'), string(name: 'version', value: env.BUILD_TAG), string(name: 'replicas', value: '3'), string(name: 'memory', value: '2G'), string(name: 'cpu', value: '2')]
|
|
|
}
|
|
|
}
|
|
|
}
|