1. Github Actions
Github Actions 是GitHub的持续集成服务。持续集成由很多操作组成,比如登录远程服务器,发布内容到第三方服务等等,GitHub把这些操作称为actions。
GitHub还有actions的官方市场。
每个action就是一个独立脚本。引用一个action,可以直接actions/repoName
,比如:
actions/setup-node
这引用github.com/actions/setup-node
仓库,作用是安装 Node.js。
GitHub Actions包含几大要素:
(1)workflow:工作流程,持续集成一次运行的过程。
(2)job:任务,一个workflow由一个或多个jobs构成,含义是一次持续集成的运行,可以完成多个任务。
(3)step:步骤,每个job由多个step构成,一步步完成。
(4)action:动作,每个step可以依次执行一个或多个命令。
2. workflow 文件
GitHub Actions的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows
目录。
workflow文件采用 YAML 格式,文件后缀.yml
,一个仓库可以有多个workflow文件,GitHub Actions会自动运行这些文件。
(1)name
name
字段是workflow的名称。
name: Actions Demo
(2)on
on
字段指定触发workflow的条件,通常是某些事件。
on: push
上面代码指定push
事件触发workflow。
(3)jobs
jobs字段需要写出每一项任务的job_id,可指定任务间的依赖关系。
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
上面代码指明,job1先于job2完成,job3等待job1和job2的完成才执行。
(4)runs-on
runs-on
字段指定运行需要的虚拟机环境,必填。
目前可用的虚拟机:
ubuntu-latest, ubuntu-18.04或ubuntu-16.04
windows-latest, windows-2019或windows-2016
macOS-latest或macOS-10.14
3. 示例
(1)创建一个GitHub 仓库
(2)在.github/workflows/
目录下创建testActions.yml
name: Test run v1
on:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-18.04
steps:
- name: Show environment v1
run: env | grep ^GITHUB
- name: Show ref v1
run: echo "---> Version from $Github_REF"
(3)运行workflows
在仓库的Actions中找到 run workflows按钮。
(4)查看运行结果
参考: