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

相关推荐
AI-好学者5 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
向日的葵0065 小时前
langchain的Tools教程(三)
python·langchain·tools
其实防守也摸鱼6 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚6 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7256 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
言乐67 小时前
Python实现可运行解密游戏游戏框架
python·游戏·小程序·游戏程序·关卡设计
霁月的小屋7 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
YUS云生7 小时前
Python学习笔记·第31天:FastAPI入门——路由、路径参数、查询参数与请求体
笔记·python·学习
Database_Cool_7 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾7 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#