Jenkinsfile语法 - 有一个共享python构建步骤的DRY示例吗?

use*_*673 1 python jenkins jenkins-pipeline jenkinsfile

我有一个带有共享python构建脚本的repo"A",我今天在Jenkins的各种"Execute shell"构建步骤中运行.我从job-dsl groovy代码中获取这些步骤/脚本.

在repo"B"(我的应用程序源代码所在的位置)中使用较新的Jenkins 2 Pipeline概念,我的Jenkins文件在这个repo中看起来要保持DRY并重用现有的python构建脚本吗?

我已经研究了插件'workflow-cps-global-lib',我试图在我的Jenkins大师上设置"Pipeline Libraries",但是由于这个设置以groovy为导向,它不仅仅是正确的方式去或者我只是不要挂起正确的语法.我找不到关于这个特定用例的任何例子.

基本上我只是想在我的Jenkinsfile中这个:

  1. 克隆我的应用程序的源代码库('B')
  2. 从我的repo"A"中获取我的共享python构建脚本
  3. 从各种"执行shell"步骤执行python构建脚本
  4. 诸如此类......

Ami*_*tyo 5

workflow-cps-global-lib是最佳选择.安装它并在"管理Jenkins - >配置系统 - >全局管道库中设置"以使用您的存储库.

如果您决定使用python脚本而不是groovy,请将所有python脚本放在(root)/ resources目录中.

在你的Jenkinsfile中 - 加载脚本 libraryResource

script = libraryResource 'my_script.py'
Run Code Online (Sandbox Code Playgroud)

并使用它

sh script
Run Code Online (Sandbox Code Playgroud)