相关疑难解决方法(0)

如何使用Jenkinsfile(groovy)中的变量执行shell命令的输出?

我在Jenkinsfile(Groovy)上有这样的东西,我想在变量中记录stdout和退出代码,以便稍后使用这些信息.

sh "ls -l"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,特别是因为你似乎无法在里面运行任何类型的groovy代码Jenkinsfile

groovy jenkins-workflow jenkins-pipeline jenkinsfile

178
推荐指数
6
解决办法
24万
查看次数

詹金斯管道sh返回stdout不起作用

我正在尝试使用 Jenkins 管道 sh 命令的 returnStdout 功能。此处定义https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#code-sh-code-shell-script

从之前的问题和答案中提取:Is it possible to capture the stdout from the sh DSL command in the pipeline

我的原始代码:

node{
def output = sh(returnStdout: true, script: 'pwd')
println "output = ${output}"
}
Run Code Online (Sandbox Code Playgroud)

及其结果。您可以看到我正在获取退出代码而不是传递给我的变量的结果:

[Pipeline] node {
[Pipeline] sh
[Update_Stageing_DB] Running shell script
+ pwd
/mnt/storage/jenkins/workspace/Update_Stageing_DB
[Pipeline] echo
output = 0
[Pipeline] } //node
[Pipeline] Allocate node : End
[Pipeline] End of Pipeline
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)

根据示例,我认为我可能需要添加 .trim() 以便我更新的代码如下所示:

node{
def output = sh(returnStdout: true, script: …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

5
推荐指数
1
解决办法
2万
查看次数

如何将sh的输出设置为Groovy变量?

是否可以将sh命令的输出设置为Groovy变量?它似乎是将其设置为命令的状态.

输入示例:

node {
   stage "Current Date"
   def curDate = sh "date"
   echo "The current date is ${curDate}"
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

Entering stage Current Date
Proceeding
[Pipeline] sh
[workspace] Running shell script
+ date
Tue May 10 01:15:05 UTC 2016
[Pipeline] echo
The current date is 0
Run Code Online (Sandbox Code Playgroud)

它显示The current date is 0,我希望它显示The current date is Tue May 10 01:15:05 UTC 2016你可以看到sh命令输出.我错了吗?

groovy jenkins jenkins-workflow

4
推荐指数
1
解决办法
2万
查看次数

无法在Jenkins管道作业中通过DSL(常规)存储sh命令输出

我想在管道Jenkins作业中获取最后的构建输出并附加到电子邮件中(使用emailext插件)。卷毛工作正常,并提供适当的构建输出,但我不能存储在变量中以附加到电子邮件中。我正在使用最新的詹金斯版本。

我可以看到有几个简单的sh命令的相关文章,但不适用于curl响应存储。

尝试过的代码:

1。

def consoleOutput = sh(returnStdout: true, script: 'curl http://' + jenkinsUser + ':' + jenkinsUserToken + '@' + jenkinsServer + ':8080/job/' + 'myJob/lastBuild/consoleText').trim()
echo consoleOutput
Run Code Online (Sandbox Code Playgroud)

2。

sh 'curl http://' + jenkinsUser + ':' + jenkinsUserToken + '@' + jenkinsServer + ':8080/job/' + "${env.JOB_NAME}" + '/lastBuild/consoleText; echo $? > status'
def consoleOutput = readFile('status').trim()
Run Code Online (Sandbox Code Playgroud)

3。

def consoleOutput = sh(script: 'curl http://' + jenkinsUser + ':' + jenkinsUserToken + '@' + jenkinsServer + ':8080/job/' + '/myJob/lastBuild/consoleText', returnStatus: true).split("\r?\n")
echo …
Run Code Online (Sandbox Code Playgroud)

bash groovy curl jenkins

3
推荐指数
1
解决办法
4064
查看次数