触发Travis-CI重建而不推动提交?

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

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

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

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

108356 次浏览
  • 如果你对回购有写权限:在构建的细节屏幕上,有一个按钮↻重启构建。同样在“更多选项”下有一个触发构建菜单项。

    请注意:像Ghostery这样的浏览器扩展可能会阻止显示重启按钮。尝试禁用扩展或白名单特拉维斯CI。

    注2:如果上游的.travis.yml配置已经改变,单击rebuild按钮将使用旧配置运行travis。要应用travis配置的上游更改,必须将commit添加到PR或关闭/重新打开它

  • 如果你已经发送了一个拉请求:你可以关闭PR,然后再次打开它。这将触发一个新的构建。

重新构建:

重启构建屏幕截图

触发构建:

触发构建屏幕截图

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

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

如果你安装了Travis CI客户端,你可以使用travis restart <job#>从控制台手动重新运行构建。你可以使用travis show <branch>找到分支的最后一个作业#

travis show master
travis restart 48 #use Job number without .1
travis logs master

Travis CI Client

更新:遗憾的是,它看起来并没有使用最新的提交来启动一个新的构建,而是使用repo的前一个状态重新启动前一个构建。

我知道你说的是不提交,但是如果你在master以外的分支上工作,有一个很方便的方法,那就是提交一个空提交。

git commit --allow-empty -m "Trigger"

你可以在最后改变base,删除squash/删除空提交,并在所有git钩子上工作:)

如果你在GitHub上有新项目。travis。Yml,但从未测试过,你可以运行测试而不提交:

  1. 在Travis CI设置中启用测试
  2. 在GitHub上打开项目页面
  3. 打开设置-> webhooks和服务
  4. 在服务中找到Travis CI并按下编辑按钮 .
  5. 按“测试服务” .

我发现了另一种强制重新运行CI构建和其他触发器的方法:

  1. 运行git commit --amend --no-edit,不做任何改变。这将重新创建当前分支中的最后一次提交。
  2. git push --force-with-lease origin pr-branch

你可以使用特拉维斯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"
}

我刚刚触发了一个拉请求的测试,通过点击“更新分支”在这里重新运行: github check tests component < / p >

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

< p > TL,博士 点击“更多选项”,选择“触发构建”

如果您没有写权限,只需关闭并重新打开PR。

Travis现在提供了一种从他们的web UI触发“自定义”构建的方法。在项目页面顶部附近的右侧,可以找到“更多选项”菜单按钮。

更多选项→触发构建

然后你会看到一个对话框,你可以在其中选择分支并自定义配置:

自定义构建对话框

在我写这篇文章的时候,它还处于测试阶段,看起来有点bug(但我希望他们很快就能解决这些问题)。

下面是我在Dependabot已经打开的PR上触发重建的方法,但由于.travis.yml中的错误而失败:

  1. 关闭PR
  2. 等待Dependabot的评论(“好吧,我不会再通知你关于这个版本,但当新版本可用时,我会联系你。”)。它会移除它的分支。
  3. 恢复Dependabot删除的分支(类似dependabot/cargo/tempfile-3.0.4)。
  4. 再次打开PR

请确保先将登录发送给Travis。直到您登录后,重建按钮才会出现。我知道这是显而易见的,但有人也绊倒了;-)

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