使用Travis-CI,是否可以在不向GitHub推送新提交的情况下触发重建?
使用案例:由于外部性,构建失败 . 来源实际上是正确的 . 如果只是重新运行,它将构建好并通过 .
例如,由于软件包服务器关闭而导致_695295失败,但服务器又重新启动 . 但是,在推送新提交之前,构建状态为"stuck",位于"failed" .
有没有办法推动Travis-CI做另一个构建,而不是推动“虚拟”提交?
注意:像Ghostery这样的浏览器扩展可能会阻止显示重启按钮 . 尝试禁用扩展或白名单Travis CI .
注意2:如果上游中的 .travis.yml 配置已更改,则单击“重建”按钮将使用旧配置运行travis . 要为travis配置应用上游更改,必须向PR添加提交或关闭/重新打开它 .
.travis.yml
如果在GitHub上打开存储库的 Settings 选项卡,单击 Integrations & services ,找到 Travis CI 并单击 Edit ,您应该看到 Test Service 按钮 . 这将触发构建 .
我知道你说没有推送提交,但是如果你在master之外的分支上工作,那么方便的事情就是提交一个空提交 .
git commit --allow-empty -m "Trigger"
你可以在最后重新定义并删除壁球/删除空提交并在所有git钩子上工作:)
登录Travis并转到构建页面 . 您将在齿轮图标旁边的右上角看到“重新构建”按钮:
注意:您需要具有对链接的GitHub存储库的写入权限才能使其正常工作 .
如果你在GitHub上有新的项目,它有.travis.yml,但从未经过测试,你可以不用这样的方式运行测试:
启用Travis CI配置测试_999_在GitHub上打开项目页面
打开设置 - > webhooks和服务
在服务中找到Travis CI并按下编辑按钮
按"Test service"
我找到了另一种强制重新运行CI构建和其他触发器的方法:
运行 git commit --amend --no-edit ,不做任何更改 . 这将重新创建当前分支中的最后一次提交 .
git commit --amend --no-edit
git push --force-with-lease origin pr-branch .
git push --force-with-lease origin pr-branch
您可以使用Travis CLI执行此操作 . 如described in the documentation,首先安装CLI工具,然后:
travis login --org --auto travis token
您可以将此令牌保留在环境变量 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 Client,则可以使用 travis restart <job#> 从控制台手动重新运行构建 . 您可以使用 travis show <branch> 找到分支的最后一个作业#
travis restart <job#>
travis show <branch>
travis show master travis restart 48 #use Job number without .1 travis logs master
UPDATE: 遗憾的是,看起来这并没有使用最新的提交启动新的构建,而只是使用repo的先前状态重新启动以前的构建 .
我在这里要提一下,我们现在有一种在网络上触发新版本的方法 . 有关详细信息,请参见https://blog.travis-ci.com/2017-08-24-trigger-custom-build .
TL; DR单击“更多选项”,然后选择“触发器构建” .
Travis现在提供了一种从Web UI触发“自定义”构建的方法 . 在项目页面顶部附近的右侧查找“更多选项”菜单按钮 .
然后,您将看到一个对话框,您可以在其中选择分支并自定义配置:
在我写这篇文章的时候,它处于测试阶段,并且看起来有些小问题(但我希望他们能很快解决问题) .
如果构建从未发生过(也许您没有及时将Pull-Request构建开关设置为on),则可以将Github上的Pull Request标记为已关闭,然后将其标记为已打开并将触发新构建 .
我刚刚通过单击'update branch'来触发拉动请求的测试以重新运行:
以下是我在Dependabot打开的PR上触发重建的原因,但由于 .travis.yml 中的错误而失败:
关闭PR
等待Dependabot发表评论("OK, I won't notify you again about this release, but will get in touch when a new version is available.") . 它将删除其分支 .
恢复分支Dependabot已删除(类似于 dependabot/cargo/tempfile-3.0.4 ) .
dependabot/cargo/tempfile-3.0.4
再次打开PR
如果您没有写访问权限,请关闭并重新打开PR .
14 回答
注意:像Ghostery这样的浏览器扩展可能会阻止显示重启按钮 . 尝试禁用扩展或白名单Travis CI .
注意2:如果上游中的
.travis.yml
配置已更改,则单击“重建”按钮将使用旧配置运行travis . 要为travis配置应用上游更改,必须向PR添加提交或关闭/重新打开它 .如果在GitHub上打开存储库的 Settings 选项卡,单击 Integrations & services ,找到 Travis CI 并单击 Edit ,您应该看到 Test Service 按钮 . 这将触发构建 .
我知道你说没有推送提交,但是如果你在master之外的分支上工作,那么方便的事情就是提交一个空提交 .
git commit --allow-empty -m "Trigger"
你可以在最后重新定义并删除壁球/删除空提交并在所有git钩子上工作:)
登录Travis并转到构建页面 . 您将在齿轮图标旁边的右上角看到“重新构建”按钮:
注意:您需要具有对链接的GitHub存储库的写入权限才能使其正常工作 .
如果你在GitHub上有新的项目,它有.travis.yml,但从未经过测试,你可以不用这样的方式运行测试:
启用Travis CI配置测试
_999_在GitHub上打开项目页面
打开设置 - > webhooks和服务
在服务中找到Travis CI并按下编辑按钮
按"Test service"
我找到了另一种强制重新运行CI构建和其他触发器的方法:
运行
git commit --amend --no-edit
,不做任何更改 . 这将重新创建当前分支中的最后一次提交 .git push --force-with-lease origin pr-branch
.您可以使用Travis CLI执行此操作 . 如described in the documentation,首先安装CLI工具,然后:
您可以将此令牌保留在环境变量
TRAVIS_TOKEN
中,只要您保留的文件不是公共版本控制的 .我用这个函数提交触发器:
如果安装Travis CI Client,则可以使用
travis restart <job#>
从控制台手动重新运行构建 . 您可以使用travis show <branch>
找到分支的最后一个作业#UPDATE: 遗憾的是,看起来这并没有使用最新的提交启动新的构建,而只是使用repo的先前状态重新启动以前的构建 .
我在这里要提一下,我们现在有一种在网络上触发新版本的方法 . 有关详细信息,请参见https://blog.travis-ci.com/2017-08-24-trigger-custom-build .
TL; DR单击“更多选项”,然后选择“触发器构建” .
Travis现在提供了一种从Web UI触发“自定义”构建的方法 . 在项目页面顶部附近的右侧查找“更多选项”菜单按钮 .
然后,您将看到一个对话框,您可以在其中选择分支并自定义配置:
在我写这篇文章的时候,它处于测试阶段,并且看起来有些小问题(但我希望他们能很快解决问题) .
如果构建从未发生过(也许您没有及时将Pull-Request构建开关设置为on),则可以将Github上的Pull Request标记为已关闭,然后将其标记为已打开并将触发新构建 .
我刚刚通过单击'update branch'来触发拉动请求的测试以重新运行:
以下是我在Dependabot打开的PR上触发重建的原因,但由于
.travis.yml
中的错误而失败:关闭PR
等待Dependabot发表评论("OK, I won't notify you again about this release, but will get in touch when a new version is available.") . 它将删除其分支 .
恢复分支Dependabot已删除(类似于
dependabot/cargo/tempfile-3.0.4
) .再次打开PR
如果您没有写访问权限,请关闭并重新打开PR .