Go CI 中使用上下文运行命令及集成测试
在 Go CI 流程中,将代码更改推送到远程 Git 仓库是最后一步。这一步会涉及到 Git 版本控制系统的一些概念,如提交、本地和远程仓库、分支以及将提交推送到远程仓库等。
1. 推送代码到远程仓库
要将代码推送到远程仓库,需要在管道中添加一个步骤来执行 git
命令。假设将代码推送到由 origin
标识的远程仓库的 master
分支,完整的命令是 git push origin master
。
不过,直接执行这个命令可能会有问题。因为该命令会通过网络(甚至可能是互联网)将代码推送到远程仓库,如果出现网络问题,命令可能会挂起,导致 goci
工具也挂起。对于手动执行 goci
工具的情况,还可以在一段时间后取消执行,但如果是在自动化流程或脚本中运行,这就是一个不可取的情况。
为了解决这个问题,当运行可能需要很长时间才能完成的外部命令时,设置一个超时时间是个好主意。在 Go 中,可以使用 context
包来实现这一点。
2. 实现超时步骤类型
首先,创建一个名为 timeoutStep.go
的新文件来定义新的类型。
// processes/goci.v5/timeoutStep.go
package main
import (
"context