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。
name: Node.js CIon: [push]jobs:build:runs-on: ubuntu-lateststrategy:matrix:node-version: [8.x, 10.x, 12.x]steps:- uses: actions/checkout@v2- name: Use Node.js ${{ matrix.node-version }}uses: actions/setup-node@v1with:node-version: ${{ matrix.node-version }}- run: npm install- run: npm run build --if-present- run: npm testenv:CI: true
runs-on 指定在哪个操作系统上运行,有三种配置方式:
1、Ubunturuns-on: ubuntu-latest2、Windowsruns-on: windows-latest3、macOSruns-on: macos-latest
node-version 指定 node 版本,有三种配置方式,可以指定多个版本都运行,也可以指定在单个版本下运行。
1、使用三个 node 版本,'x'是一个通配符node-version: [8.x, 10.x, 12.x]2、可以写具体的版本号node-version: [8.16.2, 10.17.0]3、单个版本node-version: '12.x'
如果不指定node版本,则GitHub使用环境的默认值node版本。
GitHub 托管的操作系统上安装了npm 和 yarn 来处理依赖关系。在构建和测试代码之前,可以使用 npm 和 yarn 在工作流中安装依赖项。
1、使用npmrun: npm install1、使用yarnrun: run: yarn
安装 package.json 文件中的 dependencies 依赖。
1、使用npmrun: npm ci1、使用yarnrun: yarn --frozen-lockfile
安装 package-lock.json 或者 npm-shrinkwrap.json 文件中的依赖,这样可以防止 npm install 安装时 lock 文件发生变化。
拉取代码。这里用的是 GitHub 官方的 action: actions/checkout@v2
