在执行Jenkinsfile之前执行代码

时间:2016-08-18 15:04:12

标签: jenkins jenkins-pipeline jenkinsfile

我们在git存储库中使用Jenkinsfile来定义Jenkins CI应该如何执行。

是否可以在执行由资源库的Jenkinsfile定义的管道之前注入一些代码,步骤等?有时我们需要在运行管道之前添加一些步骤。

执行maven作业的示例: Jenkins文件包含克隆,构建,测试,安装的步骤 因此,运行管道作业将创建具有以下步骤的管道:

cloneFromGit->buildMvn->testMvn->installMvn

但是我们需要确保所有构建工件(jar等)都进入我们的工件库。我们需要的是能够更新/更改Jenkins文件以添加额外的步骤。使用上面的示例,我们需要能够让管道运行这些步骤:

cloneFromGit->buildMvn->testMvn->installMvn->pushToArtifactRepository

侵入式/简单方法是将pushToArifactRepository - 步骤添加到所有Jenkins文件中,但我们确实(也不想)控制任何给定Jenkinsfile的内容。

1 个答案:

答案 0 :(得分:1)

我可以推荐使用Jenkins Workflow Global Library。在这里,您可以定义不同管道作业之间共享的功能。但是,这需要每个Jenkinsfile主动调用“post build”任务。该任务的实际实现可以隐藏在全局库中,因此Jenkinsfile可以非常简单。

在我使用的示例中,我的Jenkinsfile仅触发管道执行,如下所示:

def pipe = new org.typo3.chefci.v1.Pipeline()
pipe.execute()

实际实施位于central repository