GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。
GitHub Actions 是什么?
大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。
很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。
GitHub 做了一个官方市场,可以搜索到他人提交的 actions。另外,还有一个 awesome actions 的仓库,也可以找到不少 action。
基础名词概念
GitHub Actions 有一些自己的术语。
(1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
(2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
(3)step(步骤):每个 job 由多个 step 构成,一步步完成。
(4)action (动作):每个 step 可以依次执行一个或多个命令(action)。
具体内容说明:
- name自动构建的名字
- on触发条件
- watch监视
- type:started 类型:点击了星标
- 可以是数组: [push, pull_request]
- watch监视
- env环境变量
- jobs任务
- build工作的id
- run-on工作运行的环境平台
- if工作运行的判断
- steps 包含一系列任务步骤
- name子任务名
- uses 使用官方的一些action库完成一些操作
- run 运行脚本
- id运行id
workflow 文件
GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows
目录。
workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml
,比如foo.yml
。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows
目录里面有.yml
文件,就会自动运行该文件。
综上, Github actions配合GithubPages会非常方便
什么是 GitHub Pages?
打开 GitHub Pages 的首页我们会看到如下图所示:
他可以当做你或者你的项目的 Websites,那么我们可以知道 GitHub Pages 有两种最基本的用法:
- 作为你自己(或者组织)的网站(访问地址示例:http://username.github.io)
- 作为你某一个项目的网站(访问地址示例:http://username.github.io/projectname)
- 由于性能不太好, 因此最主要的用途是作为部署静态网页, 给demo展示: 做 demo 展示不同于做项目开发, 我们需要的是快速轻便的开发和部署, 而不是完备的一整套开发流程.
Github pages 的好处
- 使用零成本: github pages 集成在 github 中, 直接和代码管理绑定在一起, 随着代码更新自动重新部署, 使用非常方便.
- 免费: 免费提供 username.github.io 的域名, 免费的静态网站服务器.
- 无数量限制: github pages 没有使用的数量限制, 每一个 github repository 都可以部署为一个静态网站.
workflowDemo
官方demo
默认的生成模板: 会在仓库的./github/workflows
目录下创建一个.yml
的文件
1 | # This is a basic workflow to help you get started with Actions |
BiliBiliTool的workflow
1 | name: bilibili-daily-task |
Author: Mrli
Link: https://nymrli.top/2020/11/12/GithubAction/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.