将Jenkins控制台输出写入放置在远程服务器中的文件

时间:2017-09-16 08:22:04

标签: shell jenkins jenkins-plugins

我正在研究R& D项目,我的想法是从shell script触发Jenkins并将控制台输出写入放置在遥控器中的文件(文本文件) Windows服务器。我试着寻找选项,但没有一个是有帮助的。

有没有办法使用以下方法将Jenkins控制台输出写入位于远程服务器中的文本文件:

  1. 任何帖子构建操作或
  2. 任何外部Jenkins插件或
  3. 任何其他不同的方法
  4. 是否需要连接访问才能根据需要写入输出?请帮我弄清楚。

2 个答案:

答案 0 :(得分:2)

我可以想到几种方法来实现这个目标:

  • 运行shell命令时,将其重定向到file:

    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插件可以发送Jenkins'控制台通过电子邮件输出。

答案 1 :(得分:0)

我找到了办法。我们可以使用Jenkins REST API,它将帮助我们读取控制台输出,我们可以将其写入文件并执行必要的操作。