Travis CI针对特定工作的超时

时间:2017-08-08 19:16:04

标签: travis-ci

我有一个基于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?

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以使用travis_wait Bash功能来达到您想要的效果,例如

travis_wait 5 docker push $APPLICATION_NAME:$IMAGE_VERSION_DEV;

请参阅https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received

答案 1 :(得分:0)

使用travis_wait时,您可以探索多种选项/想法:

  1. 导出travis_wait函数并在bash脚本中使用

    scripts:
     - export -f travis_wait
     - cat./scripts/yours-using-travis_wait.sh | sudo bash -s $SOME_VAR
    
  2. 直接在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