GitHub Actions 持续集成

共 1715字,需浏览 4分钟

 ·

2020-12-20 23:10

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 CI
on: [push]
jobs: build:
runs-on: ubuntu-latest
strategy: 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@v1 with: node-version: ${{ matrix.node-version }} - run: npm install - run: npm run build --if-present - run: npm test env: 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

浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报