GitHub Action 使用
GitHub Actions 是一种持续集成和持续交付 (CI/CD) 平台,可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求,或将合并的拉取请求部署到生产环境。GitHub 提供 Linux、Windows 和 macOS 虚拟机来运行工作流程,或者您可以在自己的数据中心或云基础架构中托管自己的自托管运行器。
计费规则
公共存储库中标准 GitHub 托管的运行器和自托管运行器可免费使用 GitHub Actions。 对于专用存储库,每个 GitHub 帐户可获得一定数量的免费时间和存储以用于 GitHub 托管的运行器,具体取决于帐户所使用的产品。 超出包含数量的任何使用量都由支出限制控制。分钟数每月重置一次,而存储空间使用量不会重置。ci机器使用超过 2 核的 Windows 和 Ubuntu 运行器,将始终收取费用,包括在公共存储库中。其中GitHub Free 给的存储是 500M,2000分钟/月。在 GitHub 主机的 Windows 和 macOS 运行器上运行的作业,其消耗分钟数是在 Linux 运行器上运行的作业的 2 倍和 10 倍。 例如,1000 分钟的 Windows 使用时间将占用帐户中包含的 2000 分钟。 1000 分钟的 macOS 使用时间将占用帐户中包含的 10000 分钟。仓库使用的存储空间是 GitHub Actions 构件和 GitHub Packages 使用的存储空间总计。
查看 GitHub Actions 使用情况
操作路径:在GitHub右上角点击头像 -> Settings -> 左侧变栏目(Billing and Plans) -> Plans and usage -> Usage this month
可以分别看到 Action部分与Packages 的使用情况
快速入门
- 在仓库的根目录下新建 .github/workflows/ 目录
- 在.github/workflows/目录下创建一个文件 learn-github-actions.yml(名字不一定是这个,只要是.yml结尾就行) 代码如下
name: learn-github-actions
run-name: ${
{
github.actor }} is learning GitHub Actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
- 提交代码push到远程仓库
- 现在你的工作流已经安装成功,在每次代码push的时候就能够触发,现在应该就能看到这个工作流的第一次运行。
- 查看地址如下
备注
一个仓库可以定义多个工作流程,多个工作流的表现形式为 github/workflows/ 下存在多个不同的yml文件
关键使用流程(yml如何编写)
name 以及 run-name 只是一个标识和展示的用途,不是特别关键
如何触发工作流
- 仓库的代码或者流程发生变更,例如代码push,pull request,issue等,这里可以针对分支,tag等一系列进行筛选控制,可参考
- 在 GitHub 之外发生并在 GitHub 上触发 repository_dispatch 事件的事件,具体的事件
- 定时执行,支持cronjob配置,可以支持配置多个。
- 手动执行,如果你配置了workflow_dispatch结点则可以在界面上进行手动触发。
on:
# 只有push到master分支上才能触发这个action
push:
branches: [ "master" ]
# 定义了这个结点表示可以手动触发,手动触发时还支持定义一些自定义参数
workflow_dispatch:
# 定时执行,注意这里的定时时间都是世界标准时间UTC,和中国有时差
schedule:
- cron: 0 2 * * *
如何编写一个job
工作流运行由一个或多个 jobs 组成,默认情况下并行运行。 若要按顺序运行作业,可以使用 jobs.<job_id>.needs 关键字定义对其他作业的依赖关系。每个作业在 runs-on 指定的运行器环境中运行。
设置作业的ID
使用 jobs.<job_id> 为作业提供唯一标识符。 键 job_id 是一个字符串,其值是作业配置数据的映射。 必须将 <job_id> 替换为对于 jobs 对象的唯一字符串。 <job_id> 必须以字母或 _ 开头,并且只能包含字母数字字符、- 或 _。
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
作业名称
jobs.<job_id>.name 设置作业名称,该名称显示在 GitHub UI 中。文章来源:https://www.toymoban.com/news/detail-469939.html
作业有依赖关系
在此示例中,job1 必须在 job2 开始之前成功完成,并且 job3 等待 job1 和 job2 完成。文章来源地址https://www.toymoban.com/news/detail-469939.html
jobs:
job1:
到了这里,关于GitHub Action 使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!