使用Travis-CI,是否有可能在不推送新提交到GitHub的情况下触发重建?

用例:由于外部性而导致构建失败。这个来源实际上是正确的。如果简单地重新运行,它将构建OK并通过。

例如,由于包服务器宕机,apt-get失败,但服务器再次备份。然而,构建状态“卡”在“失败”,直到推送新的提交。

有什么方法来推动Travis-CI做另一个构建,而不是推动一个“虚拟”提交?


当前回答

如果构建从未发生(也许你没有及时将Pull-Request构建开关设置为打开),你可以在Github上将Pull Request标记为关闭,然后将其标记为打开,然后将触发一个新的构建。

其他回答

如果你打开GitHub上存储库的设置选项卡,单击集成和服务,找到Travis CI,然后单击编辑,你应该会看到一个测试服务按钮。这将触发一个构建。

有时,服务器确实犯了一些错误。 尝试登出/登录,然后一切都可能是正确的。 (是的,今天下午就发生在我身上。)

你可以使用Travis CLI来实现。如文档所述,首先安装CLI工具,然后:

travis login --org --auto
travis token

您可以将这个令牌保存在环境变量TRAVIS_TOKEN中,只要保存它的文件没有在公共的某个地方受到版本控制。

我使用这个函数来提交触发器:

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }

我应该在这里提到,我们现在有了一种在web上触发新构建的方法。详情见https://blog.travis-ci.com/2017-08-24-trigger-custom-build。

博士TL; 点击“更多选项”,然后选择“触发构建”。

如果构建从未发生(也许你没有及时将Pull-Request构建开关设置为打开),你可以在Github上将Pull Request标记为关闭,然后将其标记为打开,然后将触发一个新的构建。