Jenkins Windows pipeline

我就是我 2022-05-24 02:15 577阅读 0赞
    • 概述
    • 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

下面对一些重点部分进行解释:

  1. // 指定Pipeline运行Node label为windows的Windows slave上
  2. agent { label 'windows' }
  3. // 从Global Tools Configuration中获取MAVEN_HOME和JAVA_HOME环境变量
  4. MAVEN_HOME = "${tool 'maven_windows'}"
  5. JAVA_HOME = "${tool 'java_windows'}"

注意:在Jenkins Windows Pipeline中要使用bat来运行Windows命令(而不是sh)。

一些常见的Jenkins Windows Pipeline代码片段:

  1. // 相当于sh 'env'
  2. bat 'set'
  3. // 相当于sh 'pwd'
  4. bat 'cd'
  5. // 相当于sh 'ls -ltra'
  6. bat 'dir'
  7. // 复制Jar包到指定目录,注意cd的目录要用\而不是/
  8. bat """ cd /D ${env.WORKSPACE}\\target copy /Y ${GIT_REPO_PROJECT}-${MAVEN_POM_VERSION}.jar ${DEPLOY_JAR_DIR} """
  9. // Stop application through kill process
  10. // Need use "%%" to escape "%", reference: http://www.robvanderwoude.com/escapechars.php
  11. bat """ wmic process where "caption='java.exe' and commandline like '%%${GIT_REPO_PROJECT}%%'" call Terminate """
  12. // Start application as background job
  13. // start /b 相当于 nohup &
  14. withEnv(['JENKINS_NODE_COOKIE=background_job']) {
  15. bat """ cd /D ${DEPLOY_JAR_DIR} start /b java -jar ${GIT_REPO_PROJECT}-${MAVEN_POM_VERSION}.jar > ${DEPLOY_LOG_FILE} """
  16. }

和Linux上通过<command> --helpman <command> 查看命令帮助不同,在Windows上可以通过<command> /? 来查看命令帮助。

发表评论

表情:
评论列表 (有 0 条评论,577人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Jenkins pipeline 隐藏密码

    Jenkinsfile中使用pipeline编写脚本执行命令时候,很多时候我们的命令中需要携带密码,所以我们需要将密码隐藏避免输出到控制台日志中,先看一下隐藏密码后的效果...

    相关 Jenkins pipeline构建问题

    1、今天工作发现了一个很有意思的错误,困扰了我一天多时间。 pipeline工程脚本中有这么一个步骤(主要目的是对比a 和b两个文件差异,将只出现在b中的差异内容输出到dif