触发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.ymlconfiguration在上游发生了变化,单击重buildbutton将以旧configuration运行travis。 要应用上游变化的Travisconfiguration必须添加提交PR或closures/重新打开它。

  • 如果您发送了拉取请求 :您可以closuresPR,然后再次打开 。 这将触发一个新的构build。

ButtonPicutre

如果在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:

screengrab

注意:您需要对链接的GitHub仓库具有写入权限才能使用。

如果你在GitHub上有一个新的项目,它有.travis.yml,但是从未testing过,你可以这样运行testing而不用提交:

  1. 在Travis CI设备上启用testing
  2. 在GitHub上打开项目页面
  3. 打开设置 – > webhooks和服务
  4. 在服务中findTravis CI并按编辑button
  5. 按“testing服务”

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

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

特拉维斯CI客户端

更新:可悲的是,它看起来像这不使用最新的提交开始一个新的构build,而只是重新启动以前的版本使用以前的状态回购。

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

  1. 运行git commit --amend不做任何修改。 这将重新创build当前分支中的最后一个提交。
  2. 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重新运行: github检查测试组件