在CentOS上实现Golang项目的持续集成(CI)与部署(CD),可参考以下核心流程及工具方案:
安装基础工具
GOPATH和GOROOT环境变量。项目结构优化
go.mod和go.sum文件包含所有依赖项。git clone拉取代码。go mod tidy或go get确保依赖最新。go build生成可执行文件,支持交叉编译(如GOOS=linux)。go test ./...运行测试,结合-cover生成覆盖率报告。golint或staticcheck进行代码风格扫描。FROM golang:1.18 as builder  
WORKDIR /app  
COPY . .  
RUN CGO_ENABLED=0 GOOS=linux go build -o app .  
FROM alpine:latest  
COPY --from=builder /app/app .  
CMD ["./app"]  
scp将二进制文件传输到服务器,赋予执行权限后后台运行。scp app user@server:/path/to/deploy  
ssh user@server "chmod +x /path/to/deploy/app && nohup /path/to/deploy/app &"  
docker run或docker-compose启动容器,支持负载均衡和滚动更新。| 场景 | 推荐工具 | 核心优势 | 
|---|---|---|
| 轻量级CI/CD | Drone | 轻量级、支持自托管,配置简单 | 
| 企业级集成 | Jenkins + Docker | 插件丰富,支持复杂流水线和权限管理 | 
| 云原生部署 | GitLab CI/CD + Kubernetes | 原生支持容器化,集成服务发现和扩缩容 |