Github Actions的认识与使用
版权申明:本文为原创文章,转载请注明原文出处
这里介绍
Github官方提供的的一个功能Actions。它以脚本的形式,在各种系统环境包括但不限于Linux,MacOS,Windows等等为基础,运行代码 程序。
索引
前言
Github Actions的功能非常强大,你可以在这上面发掘出非常多的玩法。这里主要介绍Github Actions如何使用!Github Actions官方文档- Github提供一个Action市场
- Github官方action帐号
Github Actions使用限制
- 在使用
Github Actions前 你必须知道 它的一些限制 和 免费额度。官方计费文档 - 每个月有2000分钟和500MB粗存的免费额度
Linux分钟乘数是1macOS是10Windows是2 意思是 如果使用1分钟的Windows要扣2分钟额度- 每个
Workflow中的job最多可以执行6个小时 - 每个
Workflow中的job最多可以排队24小时 - 每个
Workflow最多可以执行72小时 - 所有
Action中 一个小时最多可以调用1000次API请求 - 每个仓库只能同时支持
20个workflow并行 - 并发工作数:
Linux20,macOS5,(专业版可以提高到Linux180,macOS50)
Github Action基础介绍
基础概念
workflow工作流。Action会在仓库的.github/workflows目录下后缀为.yml格式的文件作为执行脚本。job构建任务。 每个workflow由一个或多个job组成,可以并发执行jobstep步骤。 每个job由一个或多个step组成 按顺序依次执行action行动。 每个step由一个或多个action组成 按顺序依次执行- 一句话就是:每个
Workflow有一个或多个job,每个job有一个或多个step,每个step有一个或多个action。
术语/名词/作用
只有部分 随时增加 修改
-
name: GitHub Actions Test on: push: branches: - main runs-on运行的环境 和 运行版本 例如:ubuntu-letest官方文档jobs: job1: runs-on: ubuntu-latestname显示在Github的Action页面的步骤名字jobs: my_first_job: name: My first job my_second_job: name: My second jobuses要执行的actionGithub提供一个Action市场 更多参考官方文档jobs: my_first_job: steps: - name: Check out repository uses: actions/checkout@v2 #检出仓库的代码到workflow工作区run执行的命令run: |表示后面有多条命令 参考官方文档jobs: job1: steps: - name: Display the path run: npm install job2: steps: - name: Display the path run: | npm ci npm run buildneeds需要等待完成的job。可以是一个job的名字也可以是数组 参考官方文档jobs: job1: job2: needs: job1 job3: needs: [job1, job2] # 在此示例中,job1 必须在 job2 开始之前成功完成,而 job3 要等待 job1 和 job2 完成。
创建一个Action
了解了以上知识,我们开始创建一个
workflow。
- 进入你的仓库 点击
Actions
这里可以选择你需要的环境 我们选择自定义 点击set up a workflow yourself - 实际上就是在
.github/workflows目录下创建一个后缀为.yml格式的文件 - 文件名可以自定义 但后缀必须是
.yml - 在编辑框内输入以下代码
*.yml 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
26
27
28
29
30
31
32
33
34# name 自定义一个workflow的名字
name: workflow
# on 定义在什么事件触发后运行这个workflow
on:
# push 当main分支有push推送事件时 触发这个workflow
push:
branches: [ main ]
# workflow_dispatch 定义了可以手动运行这个workflow
workflow_dispatch:
# jobs 包含所有要运行的job 可以依次运行 也可以 并发
jobs:
# 定义一个job 名字叫build
build:
# 这里声明这个workflow运行在什么系统环境 这里定义的是ubuntu后面的-latest表示最新版本
runs-on: ubuntu-latest
# steps 要执行的步骤
steps:
# uses 定义具体要做的action
# actions/checkout@v2 执行actions(官方帐号)下checkout仓库的v2分支。它的作用是检出本仓库到workflow中
- uses: actions/checkout@v2
# 运行一个命令 和在系统命令行运行的命令一样
- name: Run a one-line script
run: echo Hello, world!
# 运行多行命令
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project. - 在编辑页面可以看到 右边
Marketplace提供了一个Action市场Documentation提供了官方文档 - 编辑好后 点击右上角的
Start commit在弹出的对话框点击Commit new file。 - 创建完成后 在点击页面的
Actions会看到所有workflows中刚刚创建的workflow - 点击进入刚刚创建的
workflow进入后点击左边的build这里可以看到详细的执行步骤 - 好了 现在当这个仓库只要有
push推送 就会触发这个workflow自动运行
问题/注意事项
版本
- 在执行一些脚本时 要特别注意运行环境版本 因为这会导致
workflow不能正常工作 这是比较容易忽略的地方
为README.md自述文件添加workflow状态徽章
结束
Github Actions这个功能给我们带来的可创造性非常强大。
这里只是简单介绍了一些功能,有什么问题可以在我的博客留言。
Github Actions的认识与使用

