触发Travis-CI重build而不推送提交?
使用Travis-CI,是否有可能触发一个重build,而无需向GitHub推送新的提交?
用例:由于外部性,构build失败。 来源实际上是正确的。 如果简单地重新运行,它会build立好并通过。
例如,由于包服务器closures, apt-get
失败,但服务器又重新备份。 然而,构build状态被“卡住”在“失败”,直到推送新的提交。
有什么方法可以推动Travis-CI做另一个构build,除了推“虚拟”提交吗?
-
如果您有对回购的写入权限 :在构build的详细信息屏幕上,有一个button↻ ,工具提示“重新构build”。
注意 :像Ghostery浏览器扩展可能会阻止显示重新启动button。 尝试禁用扩展或白名单Travis CI。
注2 :如果
.travis.yml
configuration在上游发生了变化,单击重buildbutton将以旧configuration运行travis。 要应用上游变化的Travisconfiguration必须添加提交PR或closures/重新打开它。 -
如果您发送了拉取请求 :您可以closuresPR,然后再次打开 。 这将触发一个新的构build。
如果在GitHub上打开存储库的Settings选项卡,点击Integrations&services ,findTravis CI并点击Edit ,你会看到一个Test Servicebutton。 这将触发一个构build。
我知道你说的没有提交一个提交,但是如果你正在一个除了master之外的分支上工作的话,就是提交一个空的提交。
git commit --allow-empty -m "Trigger"
你可以rebase在最后,并删除压扁/删除空的提交,并跨所有git钩:)
login到Travis并转到构build页面。 您会在右上angular的齿轮图标旁边看到一个“Restart Build”button:
注意:您需要对链接的GitHub仓库具有写入权限才能使用。
如果你在GitHub上有一个新的项目,它有.travis.yml,但是从未testing过,你可以这样运行testing而不用提交:
- 在Travis CI设备上启用testing
- 在GitHub上打开项目页面
- 打开设置 – > webhooks和服务
- 在服务中findTravis CI并按编辑button
- 按“testing服务”
如果你安装了Travis CI客户端,你可以使用travis restart <job#>
从控制台手动重新运行一个版本。 你可以使用travis show <branch>
find分支的最后一个工作#
travis show master travis restart 48 #use Job number without .1 travis logs master
更新:可悲的是,它看起来像这不使用最新的提交开始一个新的构build,而只是重新启动以前的版本使用以前的状态回购。
我发现了另一种强制重新运行CI构build和其他触发器的方法:
- 运行
git commit --amend
不做任何修改。 这将重新创build当前分支中的最后一个提交。 -
git push --force-with-lease origin pr-branch
。
您可以使用Travis CLI执行此操作。 如文档中所述 ,首先安装CLI工具,然后:
travis login --org --auto travis token
只要您保存的文件不是版本控制的,您可以将此令牌保留在环境variablesTRAVIS_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" }
如果构build从未发生过(也许你没有及时将Pull-Request构build开关设置为开启),那么可以将Github上的Pull Request标记为closures,然后将其标记为打开,并且将触发新的构build。
我在这里应该提到,我们现在有一种在networking上触发新构build的手段。 有关详细信息,请参阅https://blog.travis-ci.com/2017-08-24-trigger-custom-build 。
TL; DR点击“更多选项”,然后select“触发器构build”。
我只是通过点击“更新分支”在这里触发拉动请求上的testing重新运行: