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 解析器以使您的管道更简单
我正在使用 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 解析器以使您的管道更简单