GitHub Actions 基本介绍 - 开始自动化 workflow 的第一步

使用 GitHub Actions 可以让 GitHub Repo 内自订且自动执行你的软件开发流程,举例来说:当有 Contributor 建立 Pull Request 时,会触发执行自动测试脚本进行测试。你可以建立与共享任何你喜欢的自动化工作(Job),完整且任意组合它们,进而达到持续整合 (continuous integration) 与持续布署 (continuous delivery)。


GitHub Actions 介绍

在开始动手之前,我们先了解一下 GitHub Actions 组成元件:

  • Event: 触发自动化工作流程的功能。GitHub Action 有丰富的触情境,在符合的条件下即启动工作
  • Jobs: Job 是在同一个 Runner 执行的一组 Step。预设情况下这些工作会平行执行,你也能设定循序执行,当其中一个 Job 失败後,下一个 Job 不会执行
  • Step: 在 Job 内可以执行命令独立工作,Step 可以是一个命令或一个 Action,同一个 Job 内允许所有 Action 共享资料
  • Action: 独立的执行内容,可以自行撰写,也可以使用 GitHub 社群创作的 Action 来完成工作流程
  • Runner: 代理程序,负责执行自动化程序的服务器,运作在 Ubuntu Linux、Microsoft Windows 和 macOS 上

https://ithelp.ithome.com.tw/upload/images/20210911/200914947vwZzpjSzD.png

若你有阅读 什麽是 Github? 开发人员不能不知道的协同合作平台 这篇文章,会发现公开专案执行 Action 不需要费用/私有专案则有时间限制:GitHub 提供了 Runner 给你执行自动化流程,若想要运用在组织内部的私有专案上,会有一些费用产生,好处是你不需要维护虚拟机器/服务器/Runner,节省时间。

理所当然,也有 self-hosted runners 选项,在自己的主机上安装 runner 执行自动化动作,若原本就拥有虚拟主机,可以省下一些费用,但缺点需要自己安装相关套件与设定。

https://ithelp.ithome.com.tw/upload/images/20210911/20091494rLHHJW8tTX.png

你可以在右上角个人图像旁的下拉选单 > Setting > Billing & Plan 找到这个月你 GitHub Actions 使用量,并设定使用上限金额

https://ithelp.ithome.com.tw/upload/images/20210911/20091494ZQ8cjezD5G.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494FKLX8Fw56D.png


开始使用 GitHub Action - Hello World

GitHub Actions 的工作流程设定是透过 YAML 语法,刚开始学的朋友可能看到一堆陌生语法就很抗拒,而且也不知道从何开始。还好 GitHub Actions 提供了许多 Template 让开发人员可以直接套用。开启你的 Repo,点选上 GitHub Action,即可看到许多范本,建议可以从这些范本找到符合你需求的工作流程,进而修改它达到你要的目的。

我们找到 simple workflow,点选 Set up this workflow

初期先了解 YAML 每个语法与结构,并透过文件、范本或参考其他人的做法是不错的方式

simple workflow 只有印出 Hello World 文字,所以任何 Repo 皆可以执行

https://ithelp.ithome.com.tw/upload/images/20210911/20091494s7kido2n6z.png

接下来,GitHub Action 会在 Repo 内 .GitHub 资料夹内建立新的 YMAL 档案,并且产生出你选的范本

https://ithelp.ithome.com.tw/upload/images/20210911/20091494q7vRtgLrKg.png

第一次看到这个工作流程不用太担心,我们在下一篇文章会详细逐一说明内容。先点选右上角 Start commit 按钮,点选 Commit new file。

若你仔细阅读这些语法与注解,结合上面提到的元件,似乎可以了解这个工作流程在做什麽...?

https://ithelp.ithome.com.tw/upload/images/20210911/20091494M4wAZI2fZy.png

点选上方 Actions 按钮 > 左边 CI > 点选 Run workflow > 选择 branch > 点选 run workflow
https://ithelp.ithome.com.tw/upload/images/20210911/20091494QRD3qetv9B.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494zbuT44iaVJ.png

点选 All workflow,可以看到正在执行的工作流程 (黄色) 与 执行完成的工作流程 (绿色),点选刚刚执行的 CI,

https://ithelp.ithome.com.tw/upload/images/20210911/20091494h6l9QBpJJx.png

点选中间 Build Job,即可看见执行历程 (因为此工作流程只有印出 Hello World 文字,所以任何 Repo 皆可以执行)

https://ithelp.ithome.com.tw/upload/images/20210911/200914941zlDU00HS2.png

https://ithelp.ithome.com.tw/upload/images/20210911/20091494hlpYM3gnTk.png


GitHub Action 介绍只有这样?! 先别急,我们会有更深入的说明,让读者循序渐进的了解。在阅读完这篇文章之後,你应该已经知道:

  1. GitHub Actions 元件名称与其功能
  2. 如何检视 GitHub Action 每月使用量
  3. 如何透过范本建立第一个工作流程
  4. 如何执行工作流程
  5. 如何检视工程流程执行情况

下一篇文章,我们详细说明 yml 内容(Workflow syntax)。

若你喜欢我的文章,欢迎分享与订阅,谢谢。


<<:  【D11】避免重复交易资料汇入:使用PK和Unique key

>>:  在 React Native 里实作 NSFW (Not suitable for work,工作场合不宜) 分类器

Day 05 - 行前说明 — UI 元件分类你知多少?

今天是行前说明的最後一篇了,前面几篇都是很架构面的知识,而今天要讲的就是真的很贴近 UI 元件的分...

[2021铁人赛 Day12] General Skills 09

引言 昨天的题目学习到进位制以及「 ASCII code <-> 字元」转换, 关於 ...

DAY16-Style Components

前言: 今天我们要来介绍React里很强大的一个工具!没错就是Style Components!废...

[备忘录] 我的DVD备份SOP

家里有很多以前买的DVD电影 居住环境比较潮湿,光碟的表面竟然有一些发霉。 於是开始着手测试了一些拷...

16. PHPer x Composer x PSR

今天是讲座笔记,内容来自 PHP也有Day #60 composer & vite ,建议...