Jenkins: 执行 PowerShell 命令

默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务。本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题。

插件

Plugin Manager 界面中选择 "Available" 标签页,输入 "powershell" 进行过滤:

添加 PowerShell 类型的 build step 了:

一个简单的任务:检查 agent 的操作系统版本和 PowerShell 版本。一个 Freestyle 类型的 job,然后添加一个 "Windows PowerShell" 类型的 build step,并添加下面的 PowerShell 命令:

Write--Host stem.Environment]::sversion.Version Write--Host

一个 PowerShell 脚本文件中,然后在 agent 上调用 powershell.exe 执行这个脚本。第二个和第三个红框中则是输出的系统版本和 PowerShell 版本信息。

包括一些命令执行失败的情况)!

默认情况下之所以 build step 不会失败,是因为 PowerShell 执行的过程中没有执行 exit 调用!这就导致 Jenkins 无法判断执行的命令是否成功退出认就认为都是成功的啦。所以要完善这里的逻辑就要求我们一定要在脚本中实现自己的 exit 逻辑:判断脚本执行成功时调用 exit 0;判断脚本执行失败时调用 exit 1(当然你可以根据自己的需要返回其他整数)。添加 exit 1,保存后执行

支持了这个功能。创建一个 pipeline 类型的 job,输入下面的代码

node { powershell 'Write-Output "Hello,world!";' }

功能还不完美:

输出的日志总带有一点乱码,具体原因不明。猜测是 pipeline 功能对 PowerShell 插件支持还有小问题。

支持。期待 Jenkins 逐步的完善还存在的一些小问题,毕竟 MS 已经开始用 PowerShell 取代 bat 了。

相关文章

基础环境、流程图1)流程图jenkinspipeline发布应用2)、jenki...
本节是建立在流水线入门内容的基础上,而且,应当被当作一个...
Linuxcentos7安装Jenkins(jenkins-2.227-1.1.noarch.rpm)时遇...
作为一个拥有很多账号的当代美少女,忘记用户名密码什么的是...
Jenkins、GitLab和Maven(Nexus)完成自动构建迈向持续集成持...
 下载文档https://www.jenkins.io/zh/download/  Debian下...