没有自己的存储库的下游管道将Jenkinsfile存储在哪里

时间:2019-10-31 13:37:56

标签: jenkins build jenkins-pipeline artifact jenkins-declarative-pipeline

我正在为我们的构建设置Jenkins管道作业。我们以前使用Freestyle作业来构建我们的每个存储库,并在打包和部署阶段使用各种额外的手动触发作业。

到目前为止,我们具有以下管道设置:

  • repo A / Jenkinsfile-管道A-构建,运行单元测试并生成 神器
  • repo B / Jenkinsfile-管道B-构建,运行单元测试和 产生伪像

无论何时管道A或B完成,我都想运行管道C。

  • 管道C应该采用最新的A和B管道的工件,将它们打包为docker映像,运行集成测试,部署到暂存环境。

我应该在哪里将Pipeline C的Jenkins文件存储在哪里,因为它没有自己的源存储库?

对我来说,这在逻辑上是位于A和B下游的单独管道中,因此假定它属于单独的Jenkinsfile,但是在源代码管理中应该放在哪里。为了澄清起见,我希望所有管道文件都在源代码控制下。

或者我应该只在其中一个父管道中尝试定义整个管道(包括集成等),而在从另一个管道触发时跳过构建部分吗?剩下的作为一个简单的构建。例如

  • 管道A(完整管道)

    • 构建
    • 单元测试
    • 工件
    • (获取最新的B伪像)
    • 集成测试
    • 部署到阶段
  • 管道B(简单的版本,然后使用完整的管道)

    • 构建
    • 单元测试
    • 工件
    • 触发管道A,跳过所有步骤,直到集成测试步骤(可能在查看构建触发器的那些阶段上使用when块?)

我可以像这样https://metamorphant.de/blog/posts/2019-03-11-jenkins-101-downstream-projects/来建立或从另一个管道触发一个管道的资源。 但没有有关在Jenkins Pipeline中构造上述依赖项和管道的信息。

1 个答案:

答案 0 :(得分:0)

在Jenkins中定义“新项目”并选择“管道”项目类型时,当管道默认为“管道脚本”时,您将获得一个表格。 如果您有Jenkinsfile,则可以切换为使用“来自SCM的管道脚本”,并将其设置为指向Jenkinsfile的GIT位置,但是如果将其保留为默认的“ Pipeline脚本”,则可以将表单中的管道,它将被保存在作业的config.xml文件中,而无需将其存储在源代码管理中。