使用Travis-CI,是否可以在不向GitHub推送新提交的情况下触发重建?
用例:由于外部性,构建失败。来源实际上是正确的。如果只是重新运行,它会建立好并通过。
例如,apt-get
因包服务器关闭而失败,但服务器又重新启动。但是,在推送新提交之前,构建状态“卡在”“失败”。
除了推动“虚拟”提交之外,还有一些方法可以推动Travis-CI进行另一次构建吗?
答案 0 :(得分:419)
如果您对repo具有写入权限:在构建的详细信息屏幕上,有一个按钮以下,其工具提示为“重新构建”。
注意:像Ghostery这样的浏览器扩展程序可能会阻止显示重启按钮。尝试禁用扩展或白名单Travis CI。
Note2 :如果上游中.travis.yml
配置已更改,则单击“重建”按钮将使用旧配置运行travis。要为travis配置应用上游更改,必须向PR添加提交或关闭/重新打开它。
如果您发送了拉取请求:您可以close the PR then open it again。这将触发新版本。
答案 1 :(得分:201)
如果您在GitHub上打开存储库的设置标签,请点击集成&服务,找到 Travis CI 并点击修改,您会看到测试服务按钮。这将触发构建。
答案 2 :(得分:71)
我知道你说没有推送提交,但是如果你在master之外的分支上工作,那么方便的事情就是提交一个空提交。
git commit --allow-empty -m "Trigger"
你可以在最后修改并删除壁球/删除空提交并在所有git钩子上工作:)
答案 3 :(得分:23)
登录Travis并转到构建页面。您将在齿轮图标旁边的右上角看到“重新构建”按钮:
注意:您需要具有对链接的GitHub仓库的写入权限才能使其生效。
答案 4 :(得分:23)
我找到了另一种强制重新运行CI构建和其他触发器的方法:
git commit --amend --no-edit
而不做任何更改。这将重新创建当前分支中的最后一次提交。git push --force-with-lease origin pr-branch
。答案 5 :(得分:20)
如果你在GitHub上有一个新项目,它有.travis.yml,但从未经过测试,你可以不用这样的方式运行测试:
答案 6 :(得分:13)
您可以使用Travis CLI执行此操作。作为described in the documentation,首先安装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"
}
答案 7 :(得分:8)
如果您安装了Travis CI Client,则可以使用travis restart <job#>
从控制台手动重新运行构建。您可以使用travis show <branch>
travis show master
travis restart 48 #use Job number without .1
travis logs master
更新:可悲的是,看起来这并没有使用最新的提交启动新版本,而是使用回购的先前状态重新启动以前的版本。
答案 8 :(得分:8)
Travis现在提供了一种触发&#34;定制&#34;从他们的Web UI构建。寻找&#34;更多选项&#34;右侧菜单按钮靠近项目顶部的页面。
然后会出现一个对话框,您可以在其中选择分支并自定义配置:
当我写这篇文章时,它处于测试阶段,并且似乎有些错误(但我希望他们能很快解决问题)。
答案 9 :(得分:4)
我在这里要提到的是,我们现在有了一种在网络上触发新版本的方法。有关详细信息,请参阅https://blog.travis-ci.com/2017-08-24-trigger-custom-build。
TL; DR 单击“更多选项”,然后选择“触发器构建”。
答案 10 :(得分:3)
如果构建从未发生(也许您没有及时将Pull-Request构建开关设置为on),则可以将Github上的Pull Request标记为已关闭,然后将其标记为已打开并且新构建将被触发。
答案 11 :(得分:1)
答案 12 :(得分:1)
请确保先登录到Travis。在您登录之前,不会显示“重建”按钮。我知道这很明显,但是也有人在上面绊了一下;-)
答案 13 :(得分:1)
有时服务器确实犯了一些错误。 尝试注销/登录,然后一切可能正确。 (是的,今天下午发生在我身上。)
答案 14 :(得分:0)
这是我在Dependabot已打开的PR上触发重建的原因,但是由于.travis.yml
中的错误而失败:
dependabot/cargo/tempfile-3.0.4
)。答案 15 :(得分:-1)
如果您没有写入权限,请关闭并重新打开PR。