如何重新运行Github Action?

tuf*_*uff 4 github github-actions

我在Github网络用户界面上看到了这一点:

屏幕截图

但是对我来说,尚不清楚禁用的重新运行是我的.github/main.workflow配置结果还是从Github Actions服务继承而来。

下面的示例工作流程-我看不到任何明显的会禁用重新运行的内容。

workflow "Test, Lint" {
  on = "push"
  resolves = [
    "Test",
    "Lint",
    "Lint Format"
  ]
}

action "Install" {
  uses = "actions/npm@master"
  args = "install"
  secrets = ["SECRET_TOKEN"]
}

action "Test" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "test"
  secrets = ["SECRET_TOKEN"]
}

action "Lint" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "run lint"
  secrets = ["SECRET_TOKEN"]
}

action "Lint Format" {
  needs = "Install"
  uses = "actions/npm@master"
  args = "run lint:format"
  secrets = ["SECRET_TOKEN"]
}
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 9

您现在也可以(2020 年 1 月)使用新的GitHub Actions API(!,但仍处于测试阶段),如此处宣布的

它确实包含一个GitHub Actions Secrets API

重新运行工作流

使用其 ID 重新运行您的工作流运行。
对存储库具有写访问权限的任何人都可以使用此端点。
GitHub 应用程序必须具有使用此端点的操作权限。

POST /repos/:owner/:repo/actions/runs/:run_id/rerun
Run Code Online (Sandbox Code Playgroud)

因此,您可以尝试编写脚本并通过这个新 API 重新运行操作工作流。

  • 不错的尝试,但是它不允许重新运行成功的运行。我收到的错误消息:`{“message”:“此工作流运行无法重新运行”,“documentation_url”:“https://developer.github.com/v3/actions/workflow_runs/#re-run-a-工作流程”}` (3认同)

war*_*ech 9

假设您的工作流程在任何推送上启动(您的 yml 包含触发器on: [push]),要重新运行由提交触发的成功操作,添加一个新的轻量级标签就足够了。

我使用这个衬垫来创建标签、推送标签、删除标签、推送标签删除:

git tag tmp-rerun && git push --tags && git tag -d tmp-rerun && git push origin :tmp-rerun
Run Code Online (Sandbox Code Playgroud)


max*_*eld 6

到目前为止,似乎没有办法从UI重新运行GitHub操作。

您可以添加一个空提交以戳GitHub的操作:

git commit --allow-empty -m "trigger GitHub actions"
git push
Run Code Online (Sandbox Code Playgroud)

这将添加一个空的提交(未更改文件),并push在GitHub上触发另一个事件,从而触发另一个工作流程运行。

但是,这确实会破坏提交历史记录。如果您愿意,可以稍后将其压榨/去除,但这可能并不理想。


tuf*_*uff 6

这只是 Github Actions 的一个缺失/未实现的功能,现在已添加。我没有对我的工作流文件或 repo 设置进行任何更改,但我现在可以看到 UI 以“重新运行所有检查”:

重新运行ui的截图

(我通过从我的 PR 上的检查部分中的“详细信息”链接进入此页面)。

  • 不幸的是,操作(截至发布此评论时)只能在失败时重新运行 - 至少在我团队的存储库中,我们可以重新运行失败的操作,但该链接/按钮在成功的操作上不可见,这意味着我们必须推送一个空的提交。目前,我们仍然使用 Travis,尽管我们希望切换到 Actions,因为它们在其他方面比 Travis 更强大。如果 GitHub 没有添加此功能以实现功能对等,我会感到惊讶 - Travis 支持重新运行成功的构建,BitBucket Pipelines 也是如此。 (2认同)