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设计

相关推荐
程序员龙叔11 小时前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试
用户83562907805114 小时前
使用 Python 操作 Word 内容控件
后端·python
源分享15 小时前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
码云骑士15 小时前
32-慢查询排查全流程(下)-索引优化实战与最左前缀原则
python
麦聪聊数据16 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_16 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
JAVA96516 小时前
JAVA面试-JVM篇 03-JVM运行时数据区哪些是线程私有的哪些是共享的
java·jvm·面试
闵孚龙16 小时前
《PyTorch 深度修炼》Dataset 和 DataLoader:数据如何喂给模型
人工智能·pytorch·python
DARLING Zero two♡16 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql