我想出了两种方法来外部化Jenkins管道中的属性。您可以根据主要差异选择选择。
1)完全使用常规代码。此代码段将要求您在脚本安全性插件随附的“进程内脚本批准”中启用多个方法签名,因此,应在经过适当考虑后再进行 *** 作。
properties = nulldef loadProperties() { node { checkout scm properties = new Properties() File propertiesFile = new File("${workspace}/pipeline.properties") properties.load(propertiesFile.newDataInputStream()) echo "Immediate one ${properties.repo}" }}pipeline { agent none stages { stage ('prepare') { agent any steps { script { loadProperties() echo "Later one ${properties.branch}" } } } stage('Build') { agent { label 'master' } steps { // works fine. properties is available everywhere echo properties.branch } } }}
2)使用管道实用程序步骤插件-管道插件套件默认情况下包括此插件,它允许在无需启用安全异常的情况下更好地加载属性。我会推荐这种方法。
properties = nulldef loadProperties() { node { checkout scm properties = readProperties file: 'pipeline.properties' echo "Immediate one ${properties.repo}" }}pipeline { agent none stages { stage ('prepare') { agent any steps { script { loadProperties() echo "Later one ${properties.ansible}" } } } stage('Build') { agent any steps { echo properties.branch } } }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)