434

使用 Travis-CI,是否可以在不向 GitHub 推送新提交的情况下触发重建?

用例:由于外部性,构建失败。来源实际上是正确的。如果只是重新运行,它将构建好并通过。

例如,apt-get由于包服务器关闭而导致失败,但服务器再次备份。然而,在推送新的提交之前,构建状态“卡在”“失败”。

除了推动“虚拟”提交之外,还有什么方法可以推动 Travis-CI 进行另一个构建?

4

15 回答 15

477
  • 如果您对 repo 有写入权限:在构建的详细信息屏幕上,有一个按钮↻ Restart Build。在“更多选项”下还有一个触发器构建菜单项。

    注意:Ghostery 等浏览器扩展可能会阻止显示重新启动按钮。尝试禁用扩展或将 Travis CI 列入白名单。

    注意2:如果.travis.yml上游配置发生变化,点击rebuild按钮将使用旧配置运行travis。要为 travis 配置应用上游更改,必​​须向 PR 添加提交或关闭/重新打开它。

  • 如果您已发送拉取请求:您可以关闭 PR,然后再次打开它。这将触发一个新的构建。

重启构建:

重新启动构建屏幕截图

触发器构建:

触发构建屏幕截图

于 2013-07-12T21:37:03.387 回答
209

如果您在 GitHub 上打开存储库的Settings选项卡,单击Integrations & services,找到Travis CI并单击Edit,您应该会看到一个Test Service按钮。这将触发构建。

于 2013-08-15T12:24:48.543 回答
91

我知道您说的是没有推送提交,但是如果您在 master 以外的分支上工作,那么很方便的是提交一个空提交。

git commit --allow-empty -m "Trigger"

您可以在最后重新设置并删除壁球/删除空提交并适用于所有 git 钩子:)

于 2015-07-29T07:58:24.453 回答
36

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

  1. git commit --amend --no-edit无需任何更改即可运行。这将重新创建当前分支中的最后一次提交。
  2. git push --force-with-lease origin pr-branch.
于 2016-04-11T02:07:40.240 回答
21

如果你在 GitHub 上有一个新项目,它有 .travis.yml,但从未经过测试,你可以通过这种方式运行测试而不提交:

  1. 在 Travis CI 设置中启用测试
  2. 在 GitHub 上打开项目页面
  3. 打开设置-> webhook 和服务
  4. 在服务中找到 Travis CI,然后按编辑按钮
  5. 按“测试服务”
于 2016-03-02T23:41:00.237 回答
16

您可以使用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"
 }
于 2016-10-24T16:33:37.913 回答
12

Travis 现在提供了一种从他们的 Web UI 触发“自定义”构建的方法。在项目页面顶部附近的右侧查找“更多选项”菜单按钮。

更多选项 → 触发器构建

然后您将看到一个对话框,您可以在其中选择分支并自定义配置:

自定义构建对话框

在我写这篇文章的时候,它处于测试阶段,并且似乎有点错误(但我希望他们很快就会解决问题)。

于 2018-04-17T23:08:42.933 回答
8

如果您安装Travis CI 客户端,您可以使用travis restart <job#>它从控制台手动重新运行构建。您可以使用找到分支的最后一份工作#travis show <branch>

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

Travis CI 客户端

更新:可悲的是,看起来这并没有使用最新的提交开始新的构建,而是只是使用回购的先前状态重新启动先前的构建。

于 2015-03-25T01:22:19.080 回答
4

如果构建从未发生(可能您没有及时将 Pull-Request 构建开关设置为打开),您可以将 Github 上的 Pull Request 标记为已关闭,然后将其标记为已打开,并且将触发新的构建。

于 2014-12-02T22:29:27.403 回答
4

我应该在这里提一下,我们现在有了一种在网络上触发新构建的方法。有关详细信息,请参阅https://blog.travis-ci.com/2017-08-24-trigger-custom-build

TL;DR 单击“更多选项”,然后选择“触发器构建”。

于 2017-08-25T15:32:09.600 回答
1

有时会发生服务器确实犯了一些错误。尝试注销/登录,然后一切都可能正确。(是的,今天下午发生在我身上。)

于 2020-01-18T06:52:46.883 回答
1

我刚刚通过单击此处的“更新分支”触发了重新运行拉取请求的测试: github检查测试组件

于 2017-01-13T20:52:44.370 回答
1

请务必先登录Travis。在您登录之前,重建按钮不会出现。我知道这很明显,但也有人绊倒了它;-)

于 2019-10-19T00:26:37.733 回答
1

以下是我在 Dependabot 打开的 PR 上触发重建但由于以下错误而失败的方法.travis.yml

  1. 关闭公关
  2. 等待 Dependabot 发表评论(“好的,我不会再次通知您有关此版本的信息,但会在有新版本可用时与您联系。”)。它将删除其分支。
  3. 恢复已删除的 Dependabot 分支(类似于dependabot/cargo/tempfile-3.0.4)。
  4. 再次打开 PR
于 2018-11-21T14:37:32.397 回答
-1

如果您没有写入权限,请关闭并重新打开 PR。

于 2018-04-05T14:28:30.893 回答