Jenkinsfile,预构建脚本

时间:2019-03-13 11:02:14

标签: jenkins jenkins-pipeline jenkins-plugins

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

预期的行为是: 触发构建后,我想首先执行一个python脚本,该脚本可能会根据* .ini文件写入jenkins文件以添加/删除阶段。

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

谢谢

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

例如,ini文件可能会通过删除jenkins文件中的常规代码而在“编译阶段”中删除“构建计划C”步骤

1 个答案:

答案 0 :(得分:0)

举个例子供参考。

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管道提供了apisreadJSON, readYaml, readProperties来读取JSON,YAML和属性文件。

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