使用Jenkins Parametrised Build来控制Post-Build Actions的执行

时间:2017-04-24 00:12:42

标签: jenkins amazon-s3 post-build

有什么方法可以使用Jenkins Choice Parameters来控制项目中Post-Build作业的执行?

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

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

1 个答案:

答案 0 :(得分:0)

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

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