解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

这篇具有很好参考价值的文章主要介绍了解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文来自:

杨洪丽 极狐GitLab 高级网站可靠性工程师(SRE)

只使用极狐GitLab 存放代码? 那你就 OUT 啦!

如果你也遇到了如图 A / B / C / D 各位同学的烦恼,不要错过这篇能够让你日常工作更高效的内容。

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

使用极狐GitLab Webhook 触发 Pipeline,打通工作消息通知


关于 A 和 B 同学的烦恼,可以使用 Webhook 触发 Pipeline,打通工作消息通知 的功能来解决。

众所周知,极狐(GitLab) 采用远程办公工作模式,必然有许多需要协同处理的工作,这些工作当然是采用极狐GitLab 自带的 issue 提交到协同方。

关于需要 SRE 协同处理的工作,目前是在 Teamwork 中创建 issue,里面有模板,大家可以根据自己的需求填写。

紧急❗❗或一般事件也无需担心该 issue assign 给谁,因为对于 SRE 来说,他们有 on-call 的工作流程,所以我们会由 on-call 的同事来进行响应和处理。

1. 如何配置

获取触发器令牌

首先,需要选择一个 Project,新建或者现有项目都行。根据下面步骤获取 Webhook 触发令牌 👇

设置 → CI/CD → 流水线触发器 → 添加触发器 → 复制触发令牌。

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

注: 在上述配置页面也会有使用 webhook 配置的 url ,可直接复制替换令牌使用。

配置 webhook

设置→ Webhooks → 选择想要触发 Webhook 的事件进行勾选。

如当前我们需要的是当有新的 issue 创建时触发该 Pipeline。

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

注:其中 URL 为上述获取 trigger 令牌时复制的URL。

2. 整个通知流水线的实现

1. 我们可以用自己的喜好和擅长的语言写脚本来完成以下功能:

  • 获取 Webhook 事件请求参数,所有请求参数都会以文件类型的 CI/CD Variable 形式保存在 CI Job 中,可以使用 cat $TRIGGER_PAYLOAD 或者运行类似的命令来查看;

  • 获取当时的 On-caller;

  • 自定义消息内容,发送消息至 Slack。

2. CI Job 文件配置,设置只有 trigger  时才执行此 Job:

notify-sre:
  stage: notify-sre
  script:
    - chmod +x scripts/***.py
    - export TRIGGER_PAYLOAD=`cat $TRIGGER_PAYLOAD`
    - python3 scripts/***.py
  only:
    refs:
      - triggers
    variables:
      - $ISSUE_WEBHOOK == "true"

3. 实现效果

通知消息内容如图:

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

这样,既解决了 A  同学的没法及时响应,也解决了 B 同学的不知道 assign 给谁的问题。

使用极狐 GitLab 计划流水线,打通工作消息通知


C 和 D 同学的问题,既然是机械式的工作,那我们可以设置定时任务去触发流水线来完成需要手动处理的工作

  • SRE 按照 Milestone 来管理日常的工作,周期是固定的,Manager 可能会忘记 Milestone 快结束了,但是程序不会忘记;

  • 作为 SRE,每周都会进行升级,如果都由一个人来操作创建 issue 并完成部署升级,效率可想而知。极狐GitLab 可以帮助你实现自动排班并创建 issue。

1. 如何设置

设置计划流水线

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

1. Milestone 结束提醒设置计划流水线触发策略:

  • 变量$NOTIFY_MILESTONE_END_ISSUE == "1"

  • 时间:

    首次提醒:14 号早上 10 点 0 10 14 * *

    最后提醒:17 号 18 点最后再友情提示一下:0 18 17 * *

2. 自动化部署 SaaS 的 issue 创建和提醒:

  • 变量$NOTIFY_RELEASE == "1"

  • 时间:每周四上午 11 点 0 11 * * 4

编写 CI yml

  • 设置 CI_PIPELINE_SOURCE 为 schedule;

  • 特定 variable 执行特定的 job。

image: ****:1.0

stages:
  - notify_sre

milestone_issue:
  stage: notify_sre
  script:
    - chmod +x scripts/1***.py
    - python3 scripts/1.py
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $NOTIFY_MILESTONE_END_ISSUE == "1"

release-saas:
  stage: notify_sre
  script:
    - chmod +x scripts/2.py
    - python3 scripts/2.py
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $NOTIFY_RELEASE == "1"

2. 整个通知流水线的实现

我们可以用自己的喜好和擅长的语言写脚本来完成以下功能

  • Milestone 结束提醒

    获取当前 Milestone;

    统计所有 SRE 成员的 issue 个数;

    自定义消息发送到 Slack。

  • Auto release issue 提醒

    获取当时的 On-caller;

    获取创建 Auto release 的 issue 模版;

    创建 issue,Assign 给 On-caller;

    自定义消息内容发送到 Slack,@ On-caller。

3. 实现效果

Slack 通知消息如下:

  • Milestone 结束消息通知 👇

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

  • Auto release 消息通知 👇

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

以上只是使用极狐 GitLab 的一小部分自动化功能,极狐 GitLab 给开发者或运维人员都提供了非常大的空间来实现各自需要的自动化工作流,只需掌握一些简单的编程技巧就能实现丰富多彩的结果,期待你的探索与分享。

参考


  1. Slack 通知服务配置

  2. 消息变量

  3. 计划流水线文章来源地址https://www.toymoban.com/news/detail-442398.html

到了这里,关于解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jenkins+Gitlab自动化部署配置】

    以下为整理当初参照的博客 阿里云云服务器 ECS 手动搭建GitLab避坑教程 博客文中的镜像源地址已换 Gitlab忘记root用户密码的解决办法 Gitlab学习笔记(一):基于Ubuntu的gitlab的私有服务搭建(超详细) Jenkins 构建报错:Couldn‘t find any revision to build. Verify the repository and branch conf

    2024年02月21日
    浏览(52)
  • Jenkins+gitlab实现自动化部署

    Jenkins 是一个用 Java 编写的开源自动化工具,带有用于持续集成的插件。用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使用户更容易获得新的构建。它还允许您通过与大量测试和部署技术集成来持续交付软件。 Jenkins 集成了各种开发生命

    2024年02月21日
    浏览(54)
  • Gitlab自动触发jenkins完成自动化构建 jenkins

     首先安装gitlab插件,我已经安装过了,首次请在 可选插件 中进行搜索。   进入项目配置--构建触发器: Build when a change is pushed to GitLab. GitLab webhook URL: 请复制此处的URL,后续有用。  然后点击高级   “Allowed branches”触发分支可以用默认的全部分支,也可以选择仅由指定名

    2024年02月16日
    浏览(63)
  • Jenkins结合gitlab自动化持续集成

    大家好,我是自动化测试老司机~ 最近在公司有负责搭建自动化测试环境,自动化脚本写好后,毋庸置疑是需要将自动化脚本进行持续集成测试,能够根据企业的定制化需求,通过Jenkins触发执行构建任务,定时执行自动化脚本等,今天就给大家介绍一下Jenkins结合gitlab进行自动

    2024年02月11日
    浏览(58)
  • Gitlab+Jenkins自动化部署,解放双手

    ​ 在部署项目前需要对源码进行打包,一个简单的SpringBoot项目默认是打包为jar包,也就是在pom.xml中的 packagingjar/packaging 方式,当然也会有一些打包成war包方式,使用外置的Tomcat应用服务器部署war包,那么就是 packagingwar/packaging 。 在父子类聚合项目中,父工程的 pom.xml 文件中

    2024年02月07日
    浏览(65)
  • 记录使用gitlab实现Docker自动化部署

    目录 前言 一、gitlab-runner docker安装 二、gitlab-runner的注册与使用 1.注册 2. .gitlab-ci.yml 脚本编写 总结 前面搭建了gitlab与harbor ,现在就使用它们来实现自动化docker部署。所谓自动化部署,就是提交代码到指定分支时自动触发预先写好的脚本,来实现打包,推送镜像。想要实现这

    2023年04月11日
    浏览(47)
  • 智能手机还是不够智能?这些事情交给自动化来做吧:1、使用MacroDroid实现安卓自动解锁

    智能手机还是不够智能?这些事情交给自动化来做吧:1、使用MacroDroid实现安卓自动解锁 现在的手机系统、app确实已经很好用了,但有时候也有在特定的时间,重复做一些特定的操作的需求,比如抢券抢票、做任务等,费时费力,体验不好。所以,如果能自动化的完成这些事

    2024年02月17日
    浏览(56)
  • AI已经解锁自动化能力 | 颠覆商业模式和劳动力市场

     AI已经解锁自动化能力,将颠覆商业模式和劳动力市场。目前AutoGPT的开源项目: BabyAGI、Auto-GPT、AgentGPT、TeenagerAGI、Jarvis。 AutoGPT原理: 3个GPT4协同合作,一个GPT4负责分解目标创建任务,另一个GPT4负责分配任务创建优先级,再一个GPT4负责执行任务写入内存。未来完善后的

    2023年04月21日
    浏览(51)
  • 【git】2、gitlab CICD 模型部署自动化

    GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。 安装方法是参考 GitLab 在 GitHub 上的 Wiki 页面。Gitlab 是被广泛使用的基于 git 的开源代码管理平台, 基于 Ruby on Rails 构建, 主要针对软件开发过程中产生的代码和文档进

    2024年02月04日
    浏览(57)
  • Jenkins + Gitlab 实现项目自动化构建及部署

      通俗来讲就是本地项目 push 到 gitlab 后, Jenkins 能够识别到项目的更新并自动构建部署;  本文以实际操作的方式来表述详细配置过程及避开配置 Jenkins 时的坑. 默认电脑已经安装了虚拟机, 默认gitlab 上已经有了你想要部署的项目, 部署了 maven 和 jdk 并配置了环境变量!!! 1 执行

    2024年02月16日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包