Jenkins Windows pipeline
- 概述
- Jenkins pipeline for Windows
概述
下图简单介绍了Jenkins master和slave的工作原理:
解释:
• Jenkins Pipeline的配置在Jenkins master上,但是运行在Jenkins slave上。
• Jenkins Agent安装在Windows slave机器上,和该机器上的Git、JDK和Maven构成了一个运行Jenkins pipeline的环境。
• Jenkins agent把Pipeline运行的日志、归档的制品、测试结果会返回给Jenkins master。
• Pipeline中的脚本语法应与Jenkins slave机器环境一致,后面会进行详细讲解。
请参考 安装Jenkins Windows slave 了解Windows slave安装配置部分。
Jenkins pipeline for Windows
下面对一些重点部分进行解释:
// 指定Pipeline运行Node label为windows的Windows slave上
agent { label 'windows' }
// 从Global Tools Configuration中获取MAVEN_HOME和JAVA_HOME环境变量
MAVEN_HOME = "${tool 'maven_windows'}"
JAVA_HOME = "${tool 'java_windows'}"
注意:在Jenkins Windows Pipeline中要使用bat
来运行Windows命令(而不是sh
)。
一些常见的Jenkins Windows Pipeline代码片段:
// 相当于sh 'env'
bat 'set'
// 相当于sh 'pwd'
bat 'cd'
// 相当于sh 'ls -ltra'
bat 'dir'
// 复制Jar包到指定目录,注意cd的目录要用\而不是/
bat """ cd /D ${env.WORKSPACE}\\target copy /Y ${GIT_REPO_PROJECT}-${MAVEN_POM_VERSION}.jar ${DEPLOY_JAR_DIR} """
// Stop application through kill process
// Need use "%%" to escape "%", reference: http://www.robvanderwoude.com/escapechars.php
bat """ wmic process where "caption='java.exe' and commandline like '%%${GIT_REPO_PROJECT}%%'" call Terminate """
// Start application as background job
// start /b 相当于 nohup &
withEnv(['JENKINS_NODE_COOKIE=background_job']) {
bat """ cd /D ${DEPLOY_JAR_DIR} start /b java -jar ${GIT_REPO_PROJECT}-${MAVEN_POM_VERSION}.jar > ${DEPLOY_LOG_FILE} """
}
和Linux上通过<command> --help
或 man <command>
查看命令帮助不同,在Windows上可以通过<command> /?
来查看命令帮助。
还没有评论,来说两句吧...