51 | 基于 GitHub Actions 的 CI 实战
孔令飞
该思维导图由 AI 生成,仅供参考
你好,我是孔令飞。这是本专栏正文的最后一讲了,恭喜你坚持到了最后!
在 Go 项目开发中,我们要频繁地执行静态代码检查、测试、编译、构建等操作。如果每一步我们都手动执行,效率低不说,还容易出错。所以,我们通常借助 CI 系统来自动化执行这些操作。
当前业界有很多优秀的 CI 系统可供选择,例如 CircleCI、TravisCI、Jenkins、CODING、GitHub Actions 等。这些系统在设计上大同小异,为了减少你的学习成本,我选择了相对来说容易实践的 GitHub Actions,来给你展示如何通过 CI 来让工作自动化。
这一讲,我会先介绍下 GitHub Actions 及其用法,再向你展示一个 CI 示例,最后给你演示下 IAM 是如何构建 CI 任务的。
GitHub Actions 的基本用法
GitHub Actions 是 GitHub 为托管在 github.com 站点的项目提供的持续集成服务,于 2018 年 10 月推出。
GitHub Actions 具有以下功能特性:
提供原子的 actions 配置和组合 actions 的 workflow 配置两种能力。
提供可供运行的托管容器服务,包括 Docker、VM,可运行 Linux、macOS、Windows 主流系统。
提供主流语言的支持,包括 Node.js、Python、Java、Ruby、PHP、Go、Rust、.NET。
提供实时日志流程,方便调试。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
GitHub Actions是GitHub提供的持续集成服务,本文详细介绍了如何利用GitHub Actions进行持续集成实战。文章首先介绍了GitHub Actions的基本概念和术语,包括workflow、job、step和action等,并详细讲解了workflow文件的基本配置字段和进阶用法。其中涉及了使用secrets管理敏感数据和使用Artifact保存构建产物的方法。接着,文章通过实例演示了如何创建GitHub Actions workflow配置,以及在具体项目中的应用。通过实战演示,读者可以了解GitHub Actions的工作流程和任务执行过程。此外,文章还介绍了在Go项目开发中利用GitHub Actions进行CI任务构建的实践,展示了GitHub Actions在实际项目中的应用场景。总的来说,本文内容详实,适合开发人员快速了解GitHub Actions的基本用法和进阶技巧。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》,新⼈⾸单¥68
《Go 语言项目开发实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(15)
- 最新
- 精选
- pedro最后一讲留个言,专栏基本覆盖 Go 技术栈的方方面面,还有很多工具的加餐,项目开发规范,云原生,容器等知识,物超所值。 代码质量很高,学习了很多,一路走来,多谢了~
作者回复: 感谢老哥能够坚持学习到最后
2021-09-2813 - 随风而过整个专栏质量很高,文案虽然有些瑕疵,不影响整体专栏的专业度,专栏介绍了很多编程规范,主要还是云原生范畴内,看完整个专栏有很多反思,对go语言自我的认知有一个全新的提高(比如项目目录参杂其他语言的习惯目录结构来做是错误的,还有代码规范也会参照其他语言来组织)。 也到说再见的时候了,希望老师在出高质量的专栏,订阅破万,与君共勉。。。。
作者回复: 感谢老哥的支持。后面可以随时群内交流Go项目开发技术
2021-09-303 - jxs1211gitlab对应的工具叫啥
作者回复: GitlabCI
2022-04-222 - dairongpeng物超所值,非常感谢作者分享自己的优秀实践,自身在go语言领域又上一个台阶
作者回复: 感谢老哥支持!
2021-12-08 - helloworld感谢分享,非常全面的Go工程实践,建议码农们都来学习学习,不限使用语言:)
作者回复: 66666
2021-11-17 - Summer 空城老哥,请教个多了服务公用common包的问题,什么样的内容应该抽出来一个独立的sdk包,供各个微服务引用?我们现在只要有两个及以上微服务重复的代码,都放在一个core lib中,甚至于一些rpc调用、配置中心查询都放在这个core lib中。我觉得这是一个不好的设计,及时两个微服务中有一些重复的代码也是ok的。请教下老哥我理解的对么?什么内容可以放在core lib中?麻烦老哥。
作者回复: 感觉还是可以抽离出这样一个common包的。跟项目完全解耦的包都可以放在core lib中。 但我感觉这个core lib应该要有明确的边界什么样的包可以加入进去,并且形成规范。 当然包也可以不放在core lib中,比如A项目下有pkg/util/net包,这个包可以供别的项目引用,例如B项目。但如果A项目也引用到B的包,那可能会出现循环引用,也使包的引用变得复杂。
2021-10-15 - gopher523真的物超所值,大厂的工程师 真不一样啊,膜拜了,各种规范 各种设计。唉 如果给我一次重新上大学的机会 我一定要努力校招上。现在社招压力大啊2021-11-113
- Realm很专业、很系统,感谢老师的指引。 内容覆盖了编程技巧、工程化、云原生实践的经验总结,当然还有加餐鸡腿. 收获很大,谢谢老师!2021-09-292
- ҉我爱小笨蛋质量非常高,是我买的所有教材里面,最值的,没有之一!2023-04-24归属地:上海1
- 销毁first堪称go技术栈的软件工程,收货颇丰,谢谢老师2021-11-041
收起评论