如何在" Prune陈旧的远程跟踪分支上执行代码"在詹金斯?

时间:2018-02-22 20:09:54

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

当删除分支时,我想为作业创建的工件(例如AMI,docker图像,terraform服务)执行额外的清理代码。我使用声明性管道,是否有允许我实现此目的的钩子或插件?

2 个答案:

答案 0 :(得分:1)

在“管道”部分的 附加行为 下可以选择此选项。请注意,此处选择了SCM定义中的管道脚本。

Pipeline script from SCM

这也可以使用 结帐 步骤在管道脚本中完成。 https://jenkins.io/doc/pipeline/steps/workflow-scm-step/

$class: PruneStaleBranch

使用Jenkins Snippet Generator生成的示例:

checkout([$class: 'GitSCM', branches: [[name: '*/master']], 
doGenerateSubmoduleConfigurations: false, extensions: [[$class: 
'PruneStaleBranch']], submoduleCfg: [], userRemoteConfigs: 
[[credentialsId: 'credential-id-here', url: 'git@github.com:my-
repo.git']]])

答案 1 :(得分:0)

我还没有尝试过,但是 MultiBranch Action Triggers插件插件看起来可以让您执行此操作: https://plugins.jenkins.io/multibranch-action-triggers

它说:

  

此插件可在管道作业时启用/触发其他作业   是由“多分支管道作业”创建或删除的。

您可以创建一个清理作业,该清理作业运行由此插件触发的所需清理代码。您在多分支管道作业上设置了插件,并指定了要运行的其他作业。

如果我正确理解了文档,则好像SOURCE_PROJECT_NAME是一个参数,然后将其传递给您的清理作业,您可以使用该参数来清理与该分支名称有关的内容。