Github原生CI/CD,初尝Github Actions
Github 原生 CI/CD,初尝 Github Actions
Intro#
Github 目前已经推出了自己的 CICD 服务 —— Github Actions,而且比微软的 Azure DevOps Pipelines 对开发者来说更友好,使用起来更好用。
Github Actions 核心概念#
总体看下来感觉是从 Azure Pipelines 迁移过来的东西,有许多概念和 Azure Pipelines 是类似的,如果你之前用过 azure pipelines,应该很容易上手
- Runner 用来跑 cicd build 的服务器
- Github Hosted Runner Github 官方提供的 Runner
- Self-Hosted Runner 用自己的服务器作为 Runner
- Workflow 定义 CI/CD 的流程,需要执行哪些操作,需要做什么
- Workflow 定义 workflow 的配置文件,通常放在项目根目录下的
.github/workflows
文件夹下 - Workflow Run 每一次 CI/CD build
- Event 触发 ci/cd build 的事件,如 push/issue/pr
- Job 由一系列 Step 组成,Job 可以并行执行也可以串行执行,每一个 Job 都是一个新的环境
- Step 对应 Job 执行的每一个步骤
- Action 对应 Step 里执行的可复用的操作
Github Actions 配置示例#
来看一个 Github Actions 的 dotnet 配置:
name: dotnetcore # workflow name
on: [push] # event trigger,什么事件触发 build
jobs:
build:
runs-on: ubuntu-latest # 指定 runner,使用 Github 提供的 runner
steps:
- uses: actions/checkout@v1 # checkout
- name: Setup .NET Core # 设置 dotnet core 环境
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.0.100
- name: dotnet info # 输出 dotnet -info,查看 dotnet 版本信息
run: dotnet --info
- name: build
run: bash build.sh # 在 bash 中运行 build 脚本
Github 示例: https://github.com/WeihanLi/WeihanLi.Common/blob/dev/.github/workflows/dotnetcore.yml
More#
徽章:
Sample:
[](https://github.com/WeihanLi/WeihanLi.Common/actions?query=workflow%3Adotnetcore+branch%3Adev)
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg
https://github.com/<OWNER>/<REPOSITORY>/workflows/<WORKFLOW_NAME>/badge.svg?branch=<branch-name>
Summary#
总体来说,用起来还可以,但是感觉还是不如 travis-ci 以及 azure pipelines成熟,比如说常用 ci 都支持的 commit message 里包含 [skip ci] 的不触发 build,目前 Github Action 还是不支持的,不过毕竟是新推出来的产品,相信以后一定会越来越好哒,想尝试的小伙伴们可以实践一下
Reference#
- https://github.com/features/actions
- https://mp.weixin.qq.com/s/Fb9alhm2z-CzG6x92NFDmg
- https://help.github.com/en/actions/automating-your-workflow-with-github-actions
- https://help.github.com/cn/actions/automating-your-workflow-with-github-actions
- https://github.com/actions
- https://github.com/WeihanLi/WeihanLi.Common
作者:weihanli
出处:https://www.cnblogs.com/weihanli/p/11980499.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
2018-12-04 js 数组去重小技巧
2015-12-04 mvc项目架构分享系列之架构搭建之Repository和Service