Drone 是否支持配置构建超时值

Whether Drone support configuring timeout value for build

我为我们的 CI 设置了本地无人机服务器。而我们的项目是maven管理的java项目。当运行执行mvn clean install命令时,maven会将所有依赖下载到~/.m2目录下。第一次 运行 此命令将从 maven 远程存储库下载大量数据,这可能需要很长时间。在这种情况下,我在无人机 CI.

上遇到以下错误
ERROR: terminal inactive for 15m0s, build cancelled

我理解这个消息意味着控制台在 15 分钟内没有任何输出。但这在我的构建环境中是正常情况。我想知道我是否可以将 15m 配置为更大的值,以便我可以构建我们的项目。

查看无人机源代码,它们似乎具有可用于配置不活动超时的环境变量 DRONE_TIMEOUTDRONE_TIMEOUT_INACTIVITY。我试着把它放在我的 .drone.yml 文件中,但它似乎没有做任何事情,所以这可能只在更高级别可用。

这里是对环境变量的引用DRONE_TIMEOUT_INACTIVITYhttps://github.com/drone/drone/blob/17e5eb50363f3fcdc0a0461162bee93041d600b7/drone/exec.go#L62

这里是对环境变量的引用DRONE_TIMEOUThttps://github.com/drone/drone/blob/eee4fd1fd2556ac9e4115c746ce785c7364a6f12/drone/agent/agent.go#L95

这是抛出错误的地方: https://github.com/drone/drone/blob/5abb5de44aa11ea546db1d3846d603eacef7f0d9/agent/agent.go#L206

我之前的回答已经过时了。您现在可以从存储库设置屏幕更改每个单独存储库的默认超时。此设置仅对系统管理员可用。


您可以通过将 DRONE_TIMEOUT=<duration> 传递给每个代理来增加终端不活动超时。

docker run -e DRONE_TIMEOUT=15m drone/drone:0.5 agent

超时值可以是任何有效的 Go 持续时间字符串 [1]。

# 30 minute timeout
DRONE_TIMEOUT=30m

# 1 hour timeout
DRONE_TIMEOUT=1h

# 1 hour, 30 minute timeout
DRONE_TIMEOUT=1h30m

[1] https://golang.org/pkg/time/#ParseDuration