【发布时间】:2021-12-14 06:40:31
【问题描述】:
我正在使用 Jenkins 脚本化管道,自上次更新以来,我收到了一个新警告,我想将其静音,这是一个 MWE:
// FROM https://jenkins.io/doc/pipeline/examples/#parallel-multiple-nodes
def labels = []
if (Host == 'true') {
labels.add('<host-slavename>')
}
def builders = [:]
for (x in labels) {
def label = x
builders[label] = {
ansiColor('xterm') {
node(label) {
stage('cleanup') {
deleteDir()
}
stage('build') {
def timestamp = sh (script: 'echo -n `(date +%Y%m%d%H%M%S)`', returnStdout: true)
withCredentials([string(credentialsId: 'TEST_PASSWORD', variable: 'PASSWORD')]){
sh """
logger \
TEST_1 "${PASSWORD}" TEST_2 \
TEST_3 $timestamp TEST_4
"""
sh '''
logger \
TEST_1 "$PASSWORD" TEST_2 \
TEST_3 $timestamp TEST_4
'''
}
}
}
}
}
}
parallel builders
第一个 sh 块返回
Warning: A secret was passed to "sh" using Groovy String interpolation, which is insecure.
Affected argument(s) used the following variable(s): [PASSWORD]
See https://jenkins.io/redirect/groovy-string-interpolation for details.
+ logger TEST_1 **** TEST_2 TEST_3 20211029074911 TEST_4
它至少会打印时间戳和密码(它已被审查,但有效),但会引发警告。
第二个sh 块返回
+ logger TEST_1 **** TEST_2 TEST_3 TEST_4
所以没有警告,也没有时间戳。
有没有办法编写一个不显示警告但仍显示时间戳的脚本化管道?
【问题讨论】:
标签: jenkins environment-variables jenkins-pipeline pipeline