使用 Jenkins Parametrised Build 来控制 Post-Build Actions 的执行
Use Jenkins Parametrised Build to control execution of Post-Build Actions
有什么方法可以使用 Jenkins Choice Parameters 来控制项目中 Post-Build 作业的执行?
我有一个正在构建 war 文件的项目,有时(并非总是)我希望将此 war 文件发送到 Amazon S3 存储桶,以便我可以将其部署到一个 EC2 Tomcat 容器。我不希望 Jenkins 每次构建项目时都将 war 文件发送到 S3(一天发生多次),我想要一种方法来控制何时将 war 文件发送到S3.
我能看到的唯一选择是复制我当前的 Jenkins 项目并让新项目将 war 文件发送到 S3,但这意味着我最终将有多个 Jenkins 项目做 'almost'与我试图避免的完全相同。
不,不要为此制定新的构建计划。甚至声明性管道也像无人管的那样支持这个用例。一旦你有一个参数(从参数步骤。这些将允许你 "Build with parameters" 并让一个实际的人在你想要 war 发货时选中一个复选框),你可以简单地通过 params.MY_PARAM_NAME。只需将下面的 echo
s 替换为实际代码:
pipeline {
agent { label 'docker' }
parameters { booleanParam(name: 'SEND_WAR_TO_S3', defaultValue: false, description: 'Send resulting war file to s3?') }
stages {
stage('hot_stage') {
steps {
echo 'generating war...'
}
}
}
post {
always {
script {
if (params.SEND_WAR_TO_S3) {
echo 'sending war to s3'
} else {
echo 'not sending war to s3'
}
}
}
}
}
有什么方法可以使用 Jenkins Choice Parameters 来控制项目中 Post-Build 作业的执行?
我有一个正在构建 war 文件的项目,有时(并非总是)我希望将此 war 文件发送到 Amazon S3 存储桶,以便我可以将其部署到一个 EC2 Tomcat 容器。我不希望 Jenkins 每次构建项目时都将 war 文件发送到 S3(一天发生多次),我想要一种方法来控制何时将 war 文件发送到S3.
我能看到的唯一选择是复制我当前的 Jenkins 项目并让新项目将 war 文件发送到 S3,但这意味着我最终将有多个 Jenkins 项目做 'almost'与我试图避免的完全相同。
不,不要为此制定新的构建计划。甚至声明性管道也像无人管的那样支持这个用例。一旦你有一个参数(从参数步骤。这些将允许你 "Build with parameters" 并让一个实际的人在你想要 war 发货时选中一个复选框),你可以简单地通过 params.MY_PARAM_NAME。只需将下面的 echo
s 替换为实际代码:
pipeline {
agent { label 'docker' }
parameters { booleanParam(name: 'SEND_WAR_TO_S3', defaultValue: false, description: 'Send resulting war file to s3?') }
stages {
stage('hot_stage') {
steps {
echo 'generating war...'
}
}
}
post {
always {
script {
if (params.SEND_WAR_TO_S3) {
echo 'sending war to s3'
} else {
echo 'not sending war to s3'
}
}
}
}
}