Go语言怎么用GitHub Actions_Go语言GitHub Actions教程【基础】

在 GitHub Actions 中需用 actions/setup-go@v4 设置 Go 环境,指定 go-version='1.21',配置 CGO_ENABLED、GOOS/GOARCH 跨平台编译,设置 GOPROXY 避免模块拉取失败,并严格校验 go.sum。怎么在 GitHub Actions 里正确设置 Go 环境GitHub Actions 默认不带 Go,直接用 go build 会报 command not found: go。必须显式安装 Go 版本,不能靠系统预装。用 actions/setup-go@v4 动作,别用 v3 或更老版本(v3 在 macOS 上有缓存 bug)go-version 推荐写成 '1.21' 这种带单引号的字符串,避免 YAML 解析成浮点数(比如 1.21 可能被当成 1.2100000000000002)如果项目依赖 CGO_ENABLED=0 静态编译,记得在 steps 里提前设环境变量,而不是只写在 build 命令里Go test 怎么跑才不漏覆盖率又不卡住go test 在 CI 里默认不输出详细失败信息,且并发行为和本地不同,容易误判通过。加 -v 参数看每个测试函数的输出,CI 日志里没这参数,失败时你只能看到 FAIL 两个字母加 -timeout 30s,防止某个测试卡死拖垮整个 workflow(尤其是涉及网络或 time.Sleep 的 case)覆盖率要用 go test -coverprofile=coverage.out ./...,注意 ./... 才能覆盖子模块;别用 .,否则跳过 internal/ 下的包交叉编译产物怎么自动上传到 GitHub ReleaseGo 本身支持跨平台编译,但 GitHub Actions 的 runner 是 Linux,默认产出的是 Linux 二进制,想打 Windows/macOS 包得手动指定 GOOS/GOARCH。用 matrix 策略同时构建多平台:strategy: {matrix: {goos: linux, windows, darwin, goarch: amd64, arm64}}Windows 下生成的文件名要加 .exe 后缀,否则用户下载后双击打不开;可用 if: matrix.goos == 'windows' 条件追加上传 release 用 softprops/action-gh-release@v1,注意 files 路径要匹配 artifact 实际输出位置,比如 dist/myapp-*.zip,别写成 ./dist/...(Action 不认相对路径前缀)为什么 go mod download 总是超时或校验失败Actions 默认走公网拉 module,国内用户大概率遇到 verifying github.com/xxx@v0.x.x: checksum mismatch 或 context deadline exceeded。 Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计

相关推荐
不是万能的豆学长1 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
gCode Teacher 格码致知2 小时前
Pandas教学-18:number与numeric的区别
python·pandas
梦想不只是梦与想5 小时前
Python 中subprocess 模块:执行外部命令
python·subprocess·调用外部命令
懂点Tech5 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
catoop7 小时前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现
java·数据库·安全
Web极客码7 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
库库的数据库笔记7 小时前
国产信创数据库的MySQL兼容性深度对比解析
大数据·数据库·mysql·oceanbase·政务
姚远Oracle ACE8 小时前
为什么无法连接到 PostgreSQL?
数据库·postgresql
ss2738 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql