1

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

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

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

cloneFromGit->buildMvn->testMvn->installMvn

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

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

侵入性/简单的方法是将-step 添加pushToArifactRepository到所有 Jenkinsfiles 中,但是我们确实(也不希望)控制任何给定的内容Jenkinsfile

4

1 回答 1

1

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

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

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

实际的实现是在一个中央存储库中。

于 2016-08-18T19:27:29.923 回答