【问题标题】:Use Jenkins Parametrised Build to control execution of Post-Build Actions使用 Jenkins 参数化构建来控制构建后操作的执行
【发布时间】:2017-04-24 00:12:42
【问题描述】:

我有什么方法可以使用 Jenkins 选择参数来控制项目中构建后作业的执行?

我的项目正在构建一个 war 文件,有时(不是所有时候)我希望将此 war 文件发送到 Amazon S3 存储桶,以便我可以将其部署到 EC2 Tomcat 容器。我不希望 Jenkins 每次构建项目时都将战争文件发送到 S3(每天发生很多次),我想要一种方法来控制何时将战争文件发送到 S3。

我能看到的唯一选择是复制我当前的 Jenkins 项目并让新项目将战争文件发送到 S3,但这意味着我最终将有多个 Jenkins 项目做“几乎”完全相同的事情,我正在尝试避免。

【问题讨论】:

    标签: jenkins amazon-s3 post-build


    【解决方案1】:

    不,不要为此制定新的构建计划。甚至声明性管道也支持这种用例,就像没人管一样。一旦你有了一个参数(来自参数步骤。这些将允许你“使用参数构建”并在你想要战争时让一个真实的人选中一个复选框),你可以简单地通过 params.MY_PARAM_NAME 引用它。只需将下面的echos 替换为实际代码即可:

    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'
            }
          }
        }
      }
    }
    

    【讨论】:

    • 谢谢@KevinBurnett 我将尝试管道选项,并让您知道发生了什么。干杯。
    猜你喜欢
    • 1970-01-01
    • 2015-03-20
    • 2013-09-30
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多