Jenkinsfile,预构建脚本

4nkexdtk  于 2023-01-25  发布在  Jenkins
关注(0)|答案(1)|浏览(146)

我正在使用jenkins pipeline,我的用例是开发者使用一个简单的 *.ini文件,由python脚本解析,随时在jenkins文件中添加或删除stage,我不希望他们手动编辑jenkins文件,因为他们不知道它是如何工作的。
预期行为为:当一个构建被触发时,我想首先执行一个python脚本,该脚本可能会写入jenkinsfile,以根据 *.ini文件添加/删除stage。
据我所知,当一个事件触发jenkins编译时,它做的第一件事就是打开jenkins文件。但是我想知道是否可以在此之前运行一些预编译脚本?
谢谢
编辑:这是一个简单的管道运行视图(蓝海UI)x1c 0d1x
例如,ini文件可能会在编译阶段删除BuildingPlanC步骤,方法是删除在jenkins文件中执行此操作的groovy代码

628mspwn

628mspwn1#

给予个例子供参考。

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解析器,以使您的管道更加简单

相关问题