用 Jenkins 做一些自动化工作

目测现在的团队喜欢用 Jenkins 来处理一些自动化的工作。由于需要在前人的基础上做一些东西,于是我也用了一下 Jenkins. Jenkins 的官方文档有基本的教程,这里记录一些我用到的地方和遇到的问题。

安装 Jenkins

安装方法就是在官网下载一个 WAR 包,然后运行它。之后就是在 Web 界面操作了。

安装默认的插件即可。 在国内因为网络原因,某些插件可能会安装失败,重试几次即可。

创建 Pipeline

所谓的自动化工作,就是为了让 Jenkins 自己去执行一段脚本。这个脚本是 Groovy 语法的 Jenkinsfile.

所以,可以把想让 Jenkins 执行的动作写到一个 Jenkinsfile 中,然后创建一个 Pipeline. 每次在这个 Pipeline 上执行 Build 的操作,其实就是在运行这个脚本。 将这个脚本文件命名为 Jenkinsfile, 上次到 git 上备用。

在 Jenkins 界面中,选择 New item, 输入 item name 后,选择 Pipeline 类型并继续。在详情页的 Pipe 一栏中,填入 Git Repository URL, 指定 Branch 和文件名,保存配置即可。

要运行 Jenkinsfile 的脚步,在 Pipeline 的页面里点击 Build Now 即可。

添加参数

如果想每次 build 的时候接收用户的参数,可以在 Jenkinsfile 里添加类似以下内容:

properties(
   [
     [
       $class: 'ParametersDefinitionProperty',
       parameterDefinitions: [
         [
           name: 'NUMBER_OF_APPLE',
           description: 'How many apple do we want to cut?',
           $class: 'hudson.model.StringParameterDefinition',
           defaultValue: ''
         ]
       ]
     ]
   ]
 )

后期可以在脚本中以 params.NUMBER_OF_APPLE 来引用这个参数的值。

添加这个参数后,执行这个 Build job 一次。然后在 Jenkins 的界面上, Build Now 就会变成 Build with Parameters,然后会让用户提供参数再执行 build job.

定义 Cronjob

如果想脚本定期执行,可以使用 Jenkins 的 cron. 在脚本中添加以下属性:

properties(
   [
     pipelineTriggers([[$class: "TimerTrigger", spec: "1 1 * * 2"]]) 
   ]
 )

格式是 cron 的格式。

调用其他 build job

如果需要调用其他 Jenkins build job, 可以直接用 build job 命令.

build job: 'name_of_the_other_job', parameters: [[$class: 'StringParameterValue', name: 'NUMBER_OF_PEOPLE', value: "10"]]

try-catch

默认情况下,只要 Jenkinsfile 里的任意环节出了错误,整个 Jenkins Build Job 就会宣告失败。

我们可以用 try-catch 结构来 catch 这些错误,这个不至于导致整个 Jenkins job 失败。

    try{
       sh "echo hello"
     } catch (err) {
       echo "the script failed, but let's continue."
     }

原文 

https://feichashao.com/jenkins_basic/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 用 Jenkins 做一些自动化工作

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址