写点什么

让 Jenkins 执行 GitHub 上的 pipeline 脚本

作者:程序员欣宸
  • 2022-10-19
    广东
  • 本文字数:1615 字

    阅读完需:约 1 分钟

让Jenkins执行GitHub上的pipeline脚本

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos


  • 本文是《Jenkins 流水线(pipeline)实战》系列的第二篇,上一篇搭建好了 Jenkins 环境并执行了一个简单的 pipeline 任务,当时我们直接在 Jenkins 网页上编写 pipeline 脚本,这种方式虽然简单,但是也有不足之处:


  1. pipeline 脚本内容复杂时,在网页上编辑和查找都不方便;

  2. 无法对脚本文件做版本管理,例如提交到 GitHub 上;


  • 今天的文章打算解决上述问题:将 pipeline 脚本以文件的形势保存在 GitHub 上,让 Jenkins 下载该脚本然后执行;

系列文章地址

  1. 《Jenkins流水线(pipeline)实战之:从部署到体验》

  2. 《让Jenkins执行GitHub上的pipeline脚本》

  3. 《Jenkins把GitHub项目做成Docker镜像》

环境信息


  1. 操作系统:Ubuntu 18.04.2 LT

  2. Docker:19.03.1

  3. Jenkins: 2.176.3(运行与 Docker 环境)

上传 pipeline 脚本文件到 GitHub

GitHub 开放授权

  • 为了让 Jenkins 顺利地从 GitHub 下载到 pipelien 脚本,需要在 GitHub 上开放授权,具体的方式:

  • 登录 GitHub 后,在右上角的账号菜单中点击 Settings ,如下图:

  • 点击下图红框中的"Developer settings"按钮:

  • 点击下图红框中的"Personal access tokens"按钮:

  • 接下来就是创建授权 token 的页面,这里要选好开放授权的功能,如下图,两个红框中的功能 Jenkins 会用到的,必须勾选:

  • 设定完毕后,点击底部绿色的 Generate token 按钮,就会生成一个字符串,这就是授权 token,复制下来,稍后会用到;

  • 至此,GitHub 上的设置就完成了,接下来在 Jenkins 上设置流水线任务;

Jenkins 设置流水线任务

  • 现在我们在 Jenkins 上创建一个流水线任务,该任务从 GitHub 下载刚才上传的 pipeline 脚本;

  • 在 Jenkins 的左侧菜单上点击 打开 Blue Ocean ,进入 Blue Ocean 页面,Blue Ocean 页面比起原生的 Jenkins 设置页面更加适合流水线人的管理和配置:

  • 点击下图红框中的 创建流水线 按钮:

  • 进入的页面如下图所示,这就是设置流水线的页面,按照序号依次设置,即可完成流水线的新建:

  • 由于 Jenkinsfile 文件不在 GitHub 仓库的第一级目录下,因此没有被 Jenkins 扫描到,所以我们要手动指定 Jenkinsfile 文件的位置,点击下图中的红框按钮,回到任务列表:

  • 在任务列表点击刚才新建的任务,如下图红框所示:

  • 点击下图红框中的图标,即可跳转到该任务的 Jenkins 设置页面:

  • 如下图,找到 Build Configuration 设置项,在下图红框位置输入 blueocean/helloworld/Jenkinsfile ,这是刚才上传的文件在仓库中的相对位置:

  • 点击底部的保存按钮,保存配置:

  • 此时 Jenkins 会自动开始一个扫描 GitHub 仓库的任务,如果配置无误,该任务会执行成功:

  • 配置完毕,再次回到 Blue Ocean 页面,点开该任务,按照下图红框进行操作,即可运行该任务:

  • 任务启动后,点击下图红框中的 活动 按钮,即可查看任务的执行情况:

  • 点击上图中任何一条执行记录,可以查看详情,如下图,第三次执行情况显示成功从 GitHub 获取 pipeline 脚本,并且执行成功:

修改 pipeline 源码再次执行

  • 接下来验证 pipeline 脚本修改后能否立即生效:

  • 修改 Jenkinsfile 文件的内容并且提交到 GitHub,如下图红框所示,控制台打印的内容被修改了:

  • 再次在 Blue Ocean 页面启动任务,可见更新 Jenkinsfile 和执行任务都成功了:

  • 至此,让 Jenkins 执行 GitHub 上的 pipeline 脚本的实战就完成了,希望能给您带来一些参考,接下来的文章中,我们将探索更多 pipeline 功能;

欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...


发布于: 刚刚阅读数: 3
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018-04-19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
让Jenkins执行GitHub上的pipeline脚本_GitHub_程序员欣宸_InfoQ写作社区