使用 Travis-CI,是否可以在不向 GitHub 推送新提交的情况下触发重建?
用例:由于外部性,构建失败。来源实际上是正确的。如果只是重新运行,它将构建好并通过。
例如,apt-get
由于包服务器关闭而导致失败,但服务器再次备份。然而,在推送新的提交之前,构建状态“卡在”“失败”。
除了推动“虚拟”提交之外,还有什么方法可以推动 Travis-CI 进行另一个构建?
使用 Travis-CI,是否可以在不向 GitHub 推送新提交的情况下触发重建?
用例:由于外部性,构建失败。来源实际上是正确的。如果只是重新运行,它将构建好并通过。
例如,apt-get
由于包服务器关闭而导致失败,但服务器再次备份。然而,在推送新的提交之前,构建状态“卡在”“失败”。
除了推动“虚拟”提交之外,还有什么方法可以推动 Travis-CI 进行另一个构建?
如果您对 repo 有写入权限:在构建的详细信息屏幕上,有一个按钮↻ Restart Build。在“更多选项”下还有一个触发器构建菜单项。
注意:Ghostery 等浏览器扩展可能会阻止显示重新启动按钮。尝试禁用扩展或将 Travis CI 列入白名单。
注意2:如果.travis.yml
上游配置发生变化,点击rebuild按钮将使用旧配置运行travis。要为 travis 配置应用上游更改,必须向 PR 添加提交或关闭/重新打开它。
如果您已发送拉取请求:您可以关闭 PR,然后再次打开它。这将触发一个新的构建。
重启构建:
触发器构建:
如果您在 GitHub 上打开存储库的Settings选项卡,单击Integrations & services,找到Travis CI并单击Edit,您应该会看到一个Test Service按钮。这将触发构建。
我知道您说的是没有推送提交,但是如果您在 master 以外的分支上工作,那么很方便的是提交一个空提交。
git commit --allow-empty -m "Trigger"
您可以在最后重新设置并删除壁球/删除空提交并适用于所有 git 钩子:)
我找到了另一种强制重新运行 CI 构建和其他触发器的方法:
git commit --amend --no-edit
无需任何更改即可运行。这将重新创建当前分支中的最后一次提交。git push --force-with-lease origin pr-branch
.您可以使用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"
}
如果您安装Travis CI 客户端,您可以使用travis restart <job#>
它从控制台手动重新运行构建。您可以使用找到分支的最后一份工作#travis show <branch>
travis show master
travis restart 48 #use Job number without .1
travis logs master
更新:可悲的是,看起来这并没有使用最新的提交开始新的构建,而是只是使用回购的先前状态重新启动先前的构建。
如果构建从未发生(可能您没有及时将 Pull-Request 构建开关设置为打开),您可以将 Github 上的 Pull Request 标记为已关闭,然后将其标记为已打开,并且将触发新的构建。
我应该在这里提一下,我们现在有了一种在网络上触发新构建的方法。有关详细信息,请参阅https://blog.travis-ci.com/2017-08-24-trigger-custom-build。
TL;DR 单击“更多选项”,然后选择“触发器构建”。
有时会发生服务器确实犯了一些错误。尝试注销/登录,然后一切都可能正确。(是的,今天下午发生在我身上。)
请务必先登录Travis。在您登录之前,重建按钮不会出现。我知道这很明显,但也有人绊倒了它;-)
以下是我在 Dependabot 打开的 PR 上触发重建但由于以下错误而失败的方法.travis.yml
:
dependabot/cargo/tempfile-3.0.4
)。如果您没有写入权限,请关闭并重新打开 PR。