我正在研究R & D项目,我的想法是从Jenkins
触发shell script
并将控制台输出写入放置的文件(文本文件)在远程Windows服务器中。我试图寻找选择,但没有一个是有帮助的。将Jenkins控制台输出写入放置在远程服务器中的文件
有没有办法用写Jenkins
控制台输出到位于远程服务器上的文本文件:
- 任何后生成的动作或
- 任何外部詹金斯插件或
- 任何其他不同方法
根据需要写入输出是否需要任何连接访问?请帮助我找出一个办法。
我正在研究R & D项目,我的想法是从Jenkins
触发shell script
并将控制台输出写入放置的文件(文本文件)在远程Windows服务器中。我试图寻找选择,但没有一个是有帮助的。将Jenkins控制台输出写入放置在远程服务器中的文件
有没有办法用写Jenkins
控制台输出到位于远程服务器上的文本文件:
根据需要写入输出是否需要任何连接访问?请帮助我找出一个办法。
我找到了一个方法。我们可以使用Jenkins REST API,它将帮助我们读取控制台输出,并且可以将它写入文件并执行必要的操作。
我能想到的几种方法来实现这一目标:
当运行你的shell命令,重定向到文件:
echo scripting output > myScriptOutput.txt
然后将文件复制到远程文件共享:
copy myScriptOutput.txt \\server\share\subfolder
(可以在自由式或管道作业中完成)。
像上面那样重定向输出,然后存档工件,并使用其中一个Publish Over...Plugins将其复制到远程服务器(只能在自由式作业中完成)。
将您的远程服务器配置为Jenkins节点。然后,使用管道脚本,如:
node("myBuildNodeNameOrLabel") {
bat """echo scripting output > myScriptOutput.txt"""
stash includes: 'myScriptOutput.txt', name: 'myScriptOutput'
}
node("myRemoteServerNodeNameOrLabel") {
unstash 'myScriptOutput'
// copy the file to another local folder outside the workspace
bat """copy myScriptOutput.txt d:\\some\\other\\path"""
}
与上述相同,但使用Groovy然后操纵它捕获脚本输出...
myOutput = bat returnStdout: true, script: """echo scripting output"""
// now do whatever you want with the Groovy var myOutput...
的Email-Ext插件可以发送詹金斯的控制台输出通过电子邮件。
啊。最后是一个建议。我认为副本(scp)和归档到工件看起来更好。我会尽力而为,最快会回复你。谢谢。我还需要检查它是否与Windows服务器之间存在连接。 – Dev
你在为你的任务写一个Jenkins插件吗? –
我只是使用Jenkins中的'execute shell command'选项来触发我的shell脚本并将路径指向shell脚本位置。我希望将jenkins控制台上的输出写入放置在远程服务器中的文件中。 – Dev