Jenkinsfile,预构建脚本

Jenkinsfile, prebuild script

我正在使用 jenkins 管道。我的用例是开发人员正在使用一个简单的 *.ini 文件,该文件由 python 脚本解析,以便在他们需要时随时添加或删除 jenkinsfile 中的阶段。我不希望他们手动编辑 jenkinsfile,因为他们不知道它是如何工作的。

预期行为是: 当构建被触发时,我想首先执行一个 python 脚本,它可能会根据 *.ini 文件写入 jenkinsfile 到 add/remove 阶段。

据我了解,当事件触发 jenkins 构建时,它做的第一件事就是打开 jenkinsfile。但是我想知道是否可以 运行 一些预构建脚本在那之前?

谢谢

编辑:这是管道 运行 的简单视图(蓝海 UI) Pipeline

ini 文件可能会在阶段编译中删除构建计划 C,方法是删除在 jenkins 文件中执行此操作的 groovy 代码

举个例子供参考

node {


  git url: '', branch: '', credentialsId: ''


  def parseStr = sh(script: 'python parser.py xxx.ini', returnStdout: true).trim()

  // the python parser expect to return a JSON string like: 
  // {'run_stage1': false, 'run_stage2': true}

  def parseObj = readJSON text: parseStr



    stage('stage 1') {
       if(parseObj.run_stage1) {
         echo 'stage1'
         ...
       }    
    }

    stage('stage 1') {
        if(parseObj.run_stage2) {
           echo 'stage1'
           ....
        }    
    }

}

Jenkins 管道提供 apis: readJSON, readYaml, readProperties 来读取 JSON、YAML 和属性文件。

如果您选择其中任何一个来替换 ini 文件,您可以删除 python 解析器以使您的管道更简单