我有一个基于Travis CI的构建,我有几个工作,其中一个应该将图像推送到远程docker注册表。现在有时这个注册表无法使用,在这种情况下,我想在10分钟之后超时这个特定的工作!
所以这就是我现在所拥有的:
jobs:
include:
- stage: test
script: sbt clean coverage test coverageReport
- stage: build docker image
script:
- if [ $TRAVIS_BRANCH == "master" ]; then
sbt docker:publishLocal;
docker login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $DOCKER_REGISTRY_URL;
docker push $APPLICATION_NAME:$IMAGE_VERSION_DEV;
fi
我可以从构建日志中看到构建在10分钟后超时,这似乎是默认值。但是如何覆盖并将其设置为5分钟?
我在Travis CI网站上找不到足够的参考资料。我现在怎么能在上面的构建docker阶段添加Timeout?
有什么建议吗?
答案 0 :(得分:2)
您可以使用travis_wait
Bash功能来达到您想要的效果,例如
travis_wait 5 docker push $APPLICATION_NAME:$IMAGE_VERSION_DEV;
答案 1 :(得分:0)
使用travis_wait
时,您可以探索多种选项/想法:
导出travis_wait
函数并在bash脚本中使用
scripts:
- export -f travis_wait
- cat./scripts/yours-using-travis_wait.sh | sudo bash -s $SOME_VAR
直接在travis-ci脚本步骤中使用travis_wait
scripts:
- travis_wait 90 make install
# OR
- travis_wait 90 sleep infinity &
- cat./scripts/yours.sh | sudo bash -s $SOME_VAR
# OR in some cases this "quoting" has worked
- "travis_wait 90 sleep infinity&"
- curl --funky-stuff-here