2022-11-26
前端工程化
00

目录

1. CI平台介绍
2. Jenkins的使用

1. CI平台介绍

  • 为什么会有 CI 平台?

    很多公司因为种种原因,不想使用 Github/Gitlab 上的 CI 能力,或是希望定制一些更加强大的 CI/CD工作流,就会使用专业的 CI 平台

  • 有哪些 CI 平台?

    阿里巴巴Anoe,网易Overmind,腾讯织云,开源的 Jenkins

  • Jenkins 介绍

    Jenkins 是一款开源的 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署服务

    历史永久、功能强大、之后出现的各个 CI 平台的设计都受其影响

2. Jenkins的使用

  • 执行 CI - Git Webhook 触发

    除了点击页面上的按钮触发 CI/CD 之外,更常见的还是利用 Git 远程仓库的 Webhook 触发

    GithubGitlab ,都提供了 Webhook 的功能

    GithubWebhook 设置在项目的 Settings 这个 Tab 中: image.png

    利用 Webhook 可以通知 Jenkins 开始 CI/CD 任务。例如我们开启了 push 这个操作的 Webhook 之后,如果远程 git 仓库收到了一个 push ,那个 Github 就会向我们预先配置的 url 发出请求,并且带上一些信息作为参数,从而通知jenkins,在jenkins中就可以通过相关插件解析这个请求,触发相应项目的 CI/CD 过程。

  • Jenkins Pipeline

    触发 CI/CD 之后如何执行具体的任务呢? 实际上Jenkins有一个Pipeline的概念,和Github Actions很像,都是编写一份配置来描述 CI/CD 逻辑。

    Jenkins 提供了一种 DSL(领域特定语言),用于开发者编写自定义的 CI/CD 流程 这个流程在 Jenkins 中叫做 Pipeline(管道),很形象

    一般, CI 平台都会提供类似的 DSL:Ant/Shell

    image.png

  • 远程部署

    Pipeline 一般用来构建项目,构建的结果会保留在构建机里

    我们可以利用 JenkinsPublish Over SSH 插件,实现远程发布功能

    这个功能,实际上就是将你的代码,通过 SSH 传输到服务器上

    Name : 选择一个ssh服务器 Source files : 写入你要传输的文件路径 Remote directory : 服务器的接收路径 Exec command : 传输完了要执行的命令
  • 结果通知

    结合 Git Commiter 信息,我们可以通知对应开发者发布结果:

    • Extended E-mail Notification 插件:邮件通知
    • dingTalk 插件:钉钉通知

参考文章:

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:叶继伟

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!