在 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设计
相关推荐
乐以礼11 分钟前
#100DaysOfAgent Day 5gcw102415 分钟前
Cron专业工具:定时任务与开发办公的一站式在线工具箱江华森18 分钟前
Gephi 可视化 + NetworkX 网络分析——《釜山行》人物关系(三)whaledown23 分钟前
互联网大厂Java求职面试三轮提问详解(涵盖Spring Boot、微服务、Kafka等核心技术)进击切图仔33 分钟前
基于千问的白盒蒸馏操作教学文档运维大师36 分钟前
【安全与故障排查】06-【复盘】生产数据库删库事故:RTO4小时恢复纪实霸道流氓气质1 小时前
Harness Engineering 模块化指令实战:告别 600 行巨型 AGENTS.mdywl4708120871 小时前
Mysql,使用B+树存储的索引增删改查效率(七)喜欢的名字被抢了1 小时前
MongoDB基础入门:从安装到CRUD与索引优化hdsoft_huge1 小时前
JDK系列19:JVM全维度调优实战,内存、元空间、线程栈、GC参数压测调优完整方案