首页 文章

触发Travis-CI重建而不推送提交?

提问于
浏览
354

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

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

例如,由于软件包服务器关闭而导致_695295失败,但服务器又重新启动 . 但是,在推送新提交之前,构建状态为"stuck",位于"failed" .

有没有办法推动Travis-CI做另一个构建,而不是推动“虚拟”提交?

14 回答

  • 16
    • If you have write access to the repo :在构建的详细信息屏幕上,有一个带有工具提示"Restart Build"的按钮 .

    注意:像Ghostery这样的浏览器扩展可能会阻止显示重启按钮 . 尝试禁用扩展或白名单Travis CI .

    注意2:如果上游中的 .travis.yml 配置已更改,则单击“重建”按钮将使用旧配置运行travis . 要为travis配置应用上游更改,必须向PR添加提交或关闭/重新打开它 .

    ButtonPicutre

  • 4

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

  • 8

    我知道你说没有推送提交,但是如果你在master之外的分支上工作,那么方便的事情就是提交一个空提交 .

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

    你可以在最后重新定义并删除壁球/删除空提交并在所有git钩子上工作:)

  • 23

    登录Travis并转到构建页面 . 您将在齿轮图标旁边的右上角看到“重新构建”按钮:

    screengrab

    注意:您需要具有对链接的GitHub存储库的写入权限才能使其正常工作 .

  • 0

    如果你在GitHub上有新的项目,它有.travis.yml,但从未经过测试,你可以不用这样的方式运行测试:

    • 启用Travis CI配置测试
      _999_在GitHub上打开项目页面

    • 打开设置 - > webhooks和服务

    • 在服务中找到Travis CI并按下编辑按钮

    • 按"Test service"

  • 4

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

    • 运行 git commit --amend --no-edit ,不做任何更改 . 这将重新创建当前分支中的最后一次提交 .

    • git push --force-with-lease origin pr-branch .

  • 12

    您可以使用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"
     }
    
  • 20

    如果安装Travis CI Client,则可以使用 travis restart <job#> 从控制台手动重新运行构建 . 您可以使用 travis show <branch> 找到分支的最后一个作业#

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

    Travis CI Client

    UPDATE: 遗憾的是,看起来这并没有使用最新的提交启动新的构建,而只是使用repo的先前状态重新启动以前的构建 .

  • 202

    我在这里要提一下,我们现在有一种在网络上触发新版本的方法 . 有关详细信息,请参见https://blog.travis-ci.com/2017-08-24-trigger-custom-build .

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

  • 3

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

    More Options → Trigger Build

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

    Custom Build Dialog Box

    在我写这篇文章的时候,它处于测试阶段,并且看起来有些小问题(但我希望他们能很快解决问题) .

  • 1

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

  • 392

    我刚刚通过单击'update branch'来触发拉动请求的测试以重新运行:
    github check tests component

  • -1

    以下是我在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

  • 65

    如果您没有写访问权限,请关闭并重新打开PR .

相关问题