前置知识

第一个action

  • action都建立在.github/workflows文件夹下
  • 可以从这里建立

  • 也可以从顶部Actions标签进入

  • 第一个action内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
name: 第一个Action 

on: workflow_dispatch #允许您从 "操作 "选项卡手动运行此工作流

jobs:
abcdef: #自定义名称
runs-on: ubuntu-latest #运行环境

steps: #步骤代表作为任务一部分执行的任务序列(可顺序也可并行)
- name: 第一个action运行任务单行
run: echo hello #单行

- name: 多行输出
run: |
echo hello1
echo hello2

  • 运行

第二个action-运行在window-server上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
name: 第一个Action 

on: workflow_dispatch #允许您从 "操作 "选项卡手动运行此工作流

jobs:
#第一个任务
abcdef: #自定义名称
runs-on: ubuntu-latest #运行环境

steps: #步骤代表作为任务一部分执行的任务序列(可顺序也可并行)
- name: 第一个action运行任务单行
run: echo hello #单行

- name: 多行输出
run: |
echo hello1
echo hello2
# 第二个任务
second:
runs-on: windows-latest
steps:
- name: 第二个任务(并行)
run: |
echo "hello github actinos"
Get-Date

(todo)github action里的jobs的并行和串行

  • 并行的时候,第一个执行失败,第二个也依旧会执行(也就是执行都是独立的)

小练习-1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: pytest
on: workflow_dispatch
jobs:
pytest:
runs-on: ubuntu-latest #规定工作环境
steps: #设置步骤
- name: 克隆仓库
run: | # 默认安装了git
git clone https://github.com/superBiuBiuMan/github-action-demo1.git
cd ./github-action-demo1
- name: 安装依赖
run: pip install pytest
- name: 执行测试
run: pytest

github 里面的actions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
name: pytest
on: workflow_dispatch
jobs:
pytest:
runs-on: ubuntu-latest #规定工作环境
steps: #设置步骤
- name: 克隆仓库(使用checkout actions)
uses: actions/checkout@v4.1.1
with: #如果克隆的是运行项目下的仓库,可以省略其实
repository: superBiuBiuMan/github-action-demo1
- name: 安装依赖
run: pip install pytest
- name: 执行测试
run: pytest
  • 运行结果

(todo)job

  • job既可以是并行的,也可以是顺序的

上下文

  • 也就是一些写好的变量供我们使用去读取值
上下文名称类型说明
githubobject工作流程运行的相关信息。 有关更多信息,请参阅 github 上下文
envobject包含工作流、作业或步骤中设置的变量。 有关更多信息,请参阅 env 上下文
varsobject包含存储库、组织或环境级别设置的变量。 有关更多信息,请参阅 vars 上下文
jobobject有关当前运行的作业的信息。 有关更多信息,请参阅 job 上下文
jobsobject仅适用于可重用工作流,包含可重用工作流中的作业输出。 有关更多信息,请参阅 jobs 上下文
stepsobject有关当前作业中已运行的步骤的信息。 有关更多信息,请参阅 steps 上下文
runnerobject有关运行当前作业的运行器的信息。 有关更多信息,请参阅 runner 上下文
secretsobject包含可用于工作流运行的机密的名称和值。 有关更多信息,请参阅 secrets 上下文
strategyobject有关当前作业的矩阵执行策略的信息。 有关更多信息,请参阅 strategy 上下文
matrixobject包含在工作流中定义的应用于当前作业的矩阵属性。 有关更多信息,请参阅 matrix 上下文
needsobject包含定义为当前作业依赖项的所有作业的输出。 有关更多信息,请参阅 needs 上下文
inputsobject包含可重用或手动触发的工作流的输入。 有关更多信息,请参阅 inputs 上下文

(todo)github action的变量

帮助文档

action市场

用的比较多的actions

  • 缓存(免费有时间限制嘛)
1
2
- name: Cache node modules
uses: actions/cache@v1