GitHub Actions
GitHub Actions 是 GitHub 的持续集成服务。
通常持续集成是由很多操作组成的,比如抓取代码、执行脚本、登录远程服务器、发布到第三方服务等。GitHub将这些操作称作actions。
如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。
GitHub 做了一个官方市场,可以搜索到他人提交的 actions:
下面分别从基本概念和发布流程详细说明一下GitHub Actions。
基本概念:
workflow (流程):持续集成一次运行的过程,就是一个 workflow。
job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
step(步骤):每个 job 由多个 step 构成,一步步完成。
action (动作):每个 step 可以依次执行一个或多个命令(action)。
创建 workflow 文件,在项目的 .github/workflows 目录,创建一个 workflow 文件,这里用的是ci.yml。
runs-on 指定在哪个操作系统上运行,有三种配置方式:
node-version 指定 node 版本,有三种配置方式,可以指定多个版本都运行,也可以指定在单个版本下运行。
如果不指定node版本,则GitHub使用环境的默认值node版本。
GitHub 托管的操作系统上安装了npm 和 yarn 来处理依赖关系。在构建和测试代码之前,可以使用 npm 和 yarn 在工作流中安装依赖项。
安装 package.json 文件中的 dependencies 依赖。
安装 package-lock.json 或者 npm-shrinkwrap.json 文件中的依赖,这样可以防止 npm install 安装时 lock 文件发生变化。
拉取代码。这里用的是 GitHub 官方的 action: actions/checkout@v2