我正在使用詹金斯管道。我的用例是开发人员正在使用一个简单的* .ini文件,该文件由python脚本解析,可以在需要时在jenkinsfile中添加或删除阶段。我不希望他们手动编辑jenkinsfile,因为他们不知道它是如何工作的。
预期的行为是: 触发构建后,我想首先执行一个python脚本,该脚本可能会根据* .ini文件写入jenkins文件以添加/删除阶段。
据我了解,当事件触发jenkins构建时,它要做的第一件事就是打开jenkinsfile。但是我想知道是否可以在此之前运行一些预构建脚本?
谢谢
编辑:这是管道运行的简单视图(蓝色海洋UI) Pipeline
例如,ini文件可能会通过删除jenkins文件中的常规代码而在“编译阶段”中删除“构建计划C”步骤
答案 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管道提供了apis:readJSON, readYaml, readProperties
来读取JSON,YAML和属性文件。
如果您选择其中任何一个来替换ini
文件,则可以删除python解析器以使您的管道更简单