2017-04-24 39 views
1

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

我有我的项目是建立一个战争文件,有时(并非所有的时间)我想这个战争文件发送到Amazon S3存储桶,所以我可以将它部署到一个EC2 Tomcat容器。我不希望詹金斯在每次构建项目时发送战争文件到S3(每天发生多次),并且我想要一种方法来控制何时将战争文件发送到S3。

我能看到的唯一选择是复制我当前的Jenkins项目并让新项目向S3发送战争文件,但这意味着我将最终有多个Jenkins项目做'几乎'完全一样的东西,我是试图避免。

回答

0

不,不要为此制定新的构建计划。甚至声明式管道都支持这种用例,就像没有人的业务一样。一旦你有一个参数(从参数步骤,这些将允许你“参数构建”,并让一个实际的人检查一个复选框,当你想要一场战争发货),你可以简单地通过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' 
     } 
     } 
    } 
    } 
} 
+0

感谢@KevinBurnett我会尝试管道选项,将让你知道什么去。干杯。 – motokazi

+0

花了一段时间,但感谢@burnettk的帮助。 – motokazi