Bash Jenkins管道语法-需要从wget获取作业的参数
我是Jenkins管道、Groovy语法等的新手Bash Jenkins管道语法-需要从wget获取作业的参数,bash,csv,jenkins,groovy,jenkins-pipeline,Bash,Csv,Jenkins,Groovy,Jenkins Pipeline,我是Jenkins管道、Groovy语法等的新手 我有一份Jenkins的工作,需要5个参数 我想安排一个管道,通过WGET检查列表(格式为csv-我也可以切换到JSON输出),csv是一行,列出了5个参数 a、 b,c,d,e 我需要解析该列表并将参数传递给 作业“如果”有行,如果没有行,跳过并完成管道 我已经搜索并基本上达到了测试的程度…: pipeline { environment { testVar='foo'} agent any stages { stage('
- 我有一份Jenkins的工作,需要5个参数
- 我想安排一个管道,通过WGET检查列表(格式为csv-我也可以切换到JSON输出),csv是一行,列出了5个参数 a、 b,c,d,e
- 我需要解析该列表并将参数传递给 作业“如果”有行,如果没有行,跳过并完成管道
pipeline {
environment {
testVar='foo'}
agent any
stages {
stage('Example Build') {
steps {
echo 'Hello World'
script {
sh "RESULT=\$(wget -qO- https://www.url.com/getlist)"
sh "echo \$RESULT"
//variable define based on parse of CSV???
}
}
}
stage('Example Deploy') {
when {
expression { testVar=='foo' }
}
steps {
echo 'Deploying'
build job: 'Testing', parameters:
[
string(name: 's_e', value: 'u'),
string(name: 't_e', value: 't'),
string(name: 's_s', value: 'DS'),
string(name: 't_s', value: 'SH'),
string(name: 'efg', value: 'TEST')
]
}
}
}}
显然,我在解析结果方面有更多的工作要做(但我不确定如何在管道中实现这一点)
然后我需要检查结果是否为空,然后将变量传递给构建。我选择了另一个选项
相反,我现在有一份Jenkins的工作,在那里我使用“其他项目上的触发器/调用构建”
在将其作为构建步骤添加之前,我有一些代码来获取WGET CSV信息
RESULT=$(wget -qO- https://url.com/getlist)
if [ -z "$RESULT" ]
then
echo "Nothing to do"
# exit 1
else
echo "$RESULT"
s_env_upper=$(echo $RESULT | awk -F',' '{print $1}')
t_env_upper=$(echo $RESULT | awk -F',' '{print $2}')
s_env=$(echo $s_env_upper| tr [A-Z] [a-z])
t_env=$(echo $t_env_upper| tr [A-Z] [a-z])
echo "s_env=$s_env" > params.cfg
echo "t_env=$t_env" >> params.cfg
fi
希望这对其他人有帮助。。。为了让管道来完成这项工作,我伤了心,答案更简单。你能试试吗:def out=sh(脚本:'wget-qO-https://www.url.com/getlist“,returnStdout:true)
?谢谢蛋白石,最好放在哪里?在echo Hello World
之后试试。不确定它是否有效;)在我定义了结果并且没有出错但有点不确定下一步该怎么做的地方添加了:)echo
it。如果显示预期输出,则进行解析。