Github actions 的使用流程
什么是 CI (CONTINUOUS INTEGRATION)
在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前
持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警
GitHub Actions
GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.
使用方法
创建工作流程
从 GitHub 上的仓库,在
.github/workflow
目录中创建一个名为superlinter.yml
的新文件。 更多信息请参阅“创建新文件”。将以下 YAML 内容复制到
superlinter.yml
文件中。 注: 如果您的默认分支不是main
,请更新DEFAULT_BRANCH
的值以匹配您仓库的默认分支名称。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25name: Super-Linter
# Run this workflow every time a new commit pushed to your repository
on: push
jobs:
# Set the job key. The key is displayed as the job name
# when a job name is not provided
super-lint:
# Name the Job
name: Lint code base
# Set the type of machine to run on
runs-on: ubuntu-latest
steps:
# Checks out a copy of your repository on the ubuntu-latest machine
- name: Checkout code
uses: actions/checkout@v2
# Runs the Super-Linter action
- name: Run Super-Linter
uses: github/super-linter@v3
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}在仓库中提交工作流程文件会触发
push
事件并运行工作流程。
查看工作流程
在 GitHub 上,导航到仓库的主页面。
在仓库名称下,单击 Actions(操作)。
在左侧边栏中,单击您想要查看的工作流程。
从工作流程运行列表中,单击要查看的运行的名称。
在左侧边栏中,单击 Lint code base(Lint 代码库)作业。
任何失败的步骤都会自动展开以显示结果。‘
高阶用法
定时
1 |
|
env
1 |
|
在工作流程中使用 env:
1
2
3
4
5
6
7steps:
- name: Hello world
run: echo Hello world $FIRST_NAME $middle_name $Last_Name!
env:
FIRST_NAME: Mona
middle_name: The
Last_Name: Octocat您也可以使用
GITHUB_ENV
设置工作流程中的以下步骤可以使用的环境变量1
2
3
4
5steps:
- name: Hello world1
run: echo "TEST_ENV=true" >> $GITHUB_ENV
- name: Hello world2
run: echo $TEST_ENV
矩阵
使用多个 Python
1 |
|
使用多个操作系统
1 |
|
在矩阵中使用环境变量
Example: RT-Thread action
1 |
|
if 语法
Example: RT-ThreadStudio action
可以使用 if
条件阻止作业在条件得到满足之前运行。 可以使用任何支持上下文和表达式来创建条件
主分支触发
检查触发工作流程的分支本仓库并且上一个步骤成功时才会执行,否则跳过该步骤:
1 |
|
合并时触发
1 |
|
Marketplace
你可以在 Github 的 Marketplace 发现很多 Actions, 将这些已经写好的 action 添加到你的 CI 文件中,会减少开发者的工作量
Checkout V2
This action checks-out your repository under
$GITHUB_WORKSPACE
, so your workflow can access it.
1 |
|
setup-python V2
This action sets up a Python environment for
1 |
|
Upload-Artifact v2
This uploads artifacts from your workflow allowing you to share data between jobs and store data once a workflow is complete.
1 |
|
file-existence-action
This is a GitHub Action to check for existence of files. It can be used for conditionally running workflow steps based on file(s) existence.
1 |
|
Close Stale Issues and PRs
Warns and then closes issues and PRs that have had no activity for a specified amount of time.
1 |
|