简介

GitHub Actions是GitHub的持续集成服务,每个用户每月都有一定的免费额度。

GitHub Free账户每月可免费使用2000分钟,存储为每个账户终身500M。其中Linux计时为1倍率,Windows计时为2倍率,macOS计时为10倍率。简单来说就是每月纯用Linux构建可用2000分钟,纯用Windows构建可用1000分钟,纯用macOS构建可用200分钟。更多计费规则参考官方计费文档

Actions各种术语概念

name: my_first_workflow # 工作流的名称
on:
push: # 这里用推送作为触发条件
branches: # 可以指定分支,如果不指定则默认main分支
- main
jobs:
echo_and_curl_job: # 第一个任务名字
runs-on: ubuntu-latest # 这里指定用来运行任务的系统
steps:
- name: echo something # 第一个步骤
run: echo "这是密钥:${{ secrets.SK }}"
- name: curl request # 第二个步骤
run: curl https://eber.vip
this_is_job2: # 第二个任务的名字
run-on: macos-latest
needs: echo_and_curl_job # 这里可以指定在echo_and_curl_job任务完成之后再执行该任务
steps:
- name: echo # 这是第二个任务的第一个步骤
run: echo "1" # 具体的执行
  1. workflow:工作流,可以理解为每个工作流的yml配置文件就是一个workflow。
  2. name:工作流的名称,如果不设置则为yml文件名。
  3. on:触发条件,可以设置某个分支的推拉等动作触发、某个工作流构建状态去触发或定时触发执行。
  4. jobs:工作流的任务,一个工作流可以有多个任务。
  5. steps:任务下面各个执行步骤,就是在这里面指定具体干啥。

一些配置的备忘录

on: 
workflow_run: # 设置某个指定的任务流运行完成后触发 (适合有前后依赖关系的两个任务流的场景),也可以用一个工作流多个job去实现
workflows: [my-build-deployment-workflow]
types: [completed]
on: 
issues: # 场景:issues有相关操作时触发,对于开源项目维护者 很有用。
types: [opened, edited, milestoned] # 更多动作值可查看官方文档
on: 
schedule: # 定时触发
- cron: '30 5,17 * * *' # 每天5点30分和17点30分触发
env: # 设置整个workflow的环境变量
MY_NAME: 'eber'
${{ env.MY_NAME }} # 使用环境变量
# 默认环境变量
CI: true # 始终为true
GITHUB_ACTION: eber # 正在运行的操作的名称,或步骤的 id。 例如,对于操作,为 __repo-owner_name-of-action-repo。在当前步骤运行不带 id 的脚本时,GitHub 会删除特殊字符并使用名称 __run。 如果在同一作业中多次使用相同的脚本或操作,则名称将包含一个由序号前跟下划线组成的后缀。 例如,运行的第一个脚本的名称将为 __run,第二个脚本的名称将为 __run_2。 同样,actions/checkout 的第二次调用将为 actionscheckout2。
GITHUB_ACTION_PATH: /home/runner/work/_actions/repo-owner/name-of-action-repo/v1 # 操作所在的路径。 此属性仅在复合操作中受支持。 您可以使用此路径访问与操作位于同一存储库中的文件。
GITHUB_ACTION_REPOSITORY: actions/checkout # 对于执行操作的步骤,这是操作的所有者和存储库名称。
GITHUB_ACTIONS: true # 当GitHub Actions运行工作流时,始终为true。 您可以使用此变量来区分测试是在本地运行还是通过GitHub Actions运行。
GITHUB_SHA: ffac537e6cbbf934b08745a378932722df287a53 # 触发工作流的提交 SHA。

未完待续!!!有时间再补充