GitHub Action Automation - 自动化你的管理程序与使用第三方 Action

过去的我,一提到 GitHub Action 就直接联想到持续整合与布署,然後就开始进入如何设计、撰写 pipeline 的问题之中。实际上 GitHub Action 的定义在於自动化程序中的每一个步骤,所以除了建置、测试、布署你的应用程序,也能将 GitHub 内部的流程自动化。

https://ithelp.ithome.com.tw/upload/images/20210919/20091494YdS6nhtKb0.png

举例来说,你能检查 Pull Request 或 Issue 是否过於老旧;也能对於第一次发 Pull Request 至你的 Repo 的贡献人员打个招呼;你可以在依据修改路径,使用 label 将 Pull Request 进行分类。这些程序与你的应用程序建置与布署没有直接关系,但可以串接起整个开发流程。

另一方面,许多读者可能不知道既有或第三方开发的 Action 如何使用,本篇文章也会简单说明如何搜寻与使用官方/第三方贡献者的 Action,让开发者不需要每次重新制作轮子。


GitHub Action Automation

开启你的 Repo > 点选 Action 按钮 > 点选 New workflow
https://ithelp.ithome.com.tw/upload/images/20210919/200914940bZtbIXPwi.png

画面拉至最底,可以看见四个 Automation 范本,我们点选第一个 Greeting 内的 Set up this workflow
https://ithelp.ithome.com.tw/upload/images/20210919/20091494iS9gwducs7.png

我们来简单说明下列的 workflow:

  • 触发条件为建立 Pull RequestIssue
  • 需要的权限为 Pull Request 写入 与 Issue 写入
  • 使用的 action 为 actions/first-interaction@v1
  • 这个 action 所需要的参数有三个:repo-token、issue-message 与 pr-message,後两者是给建立者的自订讯息
name: Greetings

on: [pull_request, issues]

jobs:
  greeting:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
    - uses: actions/first-interaction@v1
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}
        issue-message: 'Message that will be displayed on users first issue'
        pr-message: 'Message that will be displayed on users first pull request'

修改完讯息後,点选右上缴 commit 储存
https://ithelp.ithome.com.tw/upload/images/20210919/2009149409GYRBNQwn.png

接下来我们来进行测试,在 Repo 内点选 Issue > New issue
https://ithelp.ithome.com.tw/upload/images/20210919/20091494eE3eTvgpjX.png

因为只是测试,所以随意输入标题与内容,完成後点选 Submit new issue
https://ithelp.ithome.com.tw/upload/images/20210919/20091494EQJWOpCISN.png

建立完成後,你可以在这个 Test Issue 看见我们欢迎的讯息
https://ithelp.ithome.com.tw/upload/images/20210919/20091494Dn6lCT7GVD.png


使用第三方 Action

目前在市面上的 CI/CD 自动化产品,其实皆可以执行 Command 或 Build Script 来达到自动执行的需求。但在选择产品时,最重要是pipeline建立与维护的难易度。过於使用难以消化的指令与过於复杂的自动化流程,往往难以达到持续的优化,最终可能造就一个执行时间久又难以修改的 workflow,变成软件发展的绊脚石。

在 GitHub Action workflow 撰写画面,眼尖的读者应该有发现右方有 MarketPlace 选项,在这里你可以搜寻可以使用的 Action,只须点该 Action,即有 YAML 范本与使用说明,可以让你直接修改使用

最下方有分类:Code Quality, Monitoring, Continous Integration, Project Management, Deployment, Test,让使用者快速找到自己想到的 Action

https://ithelp.ithome.com.tw/upload/images/20210919/200914942kteE1yfnP.png

倘若在这个搜寻栏难以找到你要的 Action 与详细说明,最下方的 GitHub Marketplace,让你更快找到你想要的。

https://ithelp.ithome.com.tw/upload/images/20210919/20091494MDxUhwJGgp.png

注意: 尽可能使用官方、开源组织所建立的 Action,避免不知名第三方套件暗藏恶意流程
注意: 确认这些 Action 内没有列印出 Secret 相关 command,避免敏感资讯被盗取使用


阅读完本篇文章,你应该对於 GitHub Action 有更细部的了解:它不只是一个执行 CI/CD 自动化服务,也一个自动化的程序,更重要的是有许多可重复使用的 Action,不用让读者每次都建立 workflow 时都需要从重造轮子开始。下一篇文章开始,我们将开始介绍 GitHub 安全相关功能。若喜欢我的文章,欢迎点 like, 分享与订阅。


<<:  Test

>>:  沟通这回事:工具软件篇

Between Two Sets

题目原文 题目网址 翻译蒟蒻 题目给你两个阵列 a 和 b 里面包含一些数字 找出一个特定数字符合以...

在安装haproxy时,显示重启失败

在安装软件时有安装成功,但启动时失败,有人有遇过这种情形吗? ...

mybatis 使用

上一章节讲述了 PostgreSQL 的键置和 mybatis 连线到 DB 的配置,那今天就来实际...

Day 26 : Tkinter实战,配合pillow制作简易的处理照片程序(下)

今天继续把上一篇文的程序做完,没看过的记得要去看喔! 图片转向 那再来就先来做转向的部分: from...

【C# 群益 API 开发教学】取得商品报价、Tick、最佳 5 档教学 #CH3 (附范例)

群益 API 是利用自己开发的程序,结合群益 API 在群益券商下单的一种方式,通常是做程序交易下单...