[CI] Add run-all comment commands (#51087)

Signed-off-by: khluu <khluu000@gmail.com>
Co-authored-by: OpenAI Codex <noreply@openai.com>
This commit is contained in:
Kevin H. Luu
2026-08-04 17:34:27 -07:00
committed by GitHub
co-authored by OpenAI Codex
parent ffee32460d
commit 43c4bdcae9
3 changed files with 72 additions and 14 deletions
@@ -12,6 +12,8 @@ from run_ci_command import (
CI_AUTHORIZED_COMMENT_MARKER,
COMMAND_RETRY_FAILED,
COMMAND_RUN_CI,
COMMAND_RUN_CI_ALL,
COMMAND_RUN_CI_NIGHTLY,
RETRY_STATES,
BuildkiteClient,
HttpTransport,
@@ -269,11 +271,17 @@ class RunCiCommandTest(unittest.TestCase):
def test_only_exact_ci_commands_are_accepted(self) -> None:
self.assertEqual(parse_command(COMMAND_RUN_CI), COMMAND_RUN_CI)
self.assertEqual(parse_command(COMMAND_RUN_CI_ALL), COMMAND_RUN_CI_ALL)
self.assertEqual(
parse_command(COMMAND_RUN_CI_NIGHTLY),
COMMAND_RUN_CI_NIGHTLY,
)
self.assertEqual(
parse_command(COMMAND_RETRY_FAILED),
COMMAND_RETRY_FAILED,
)
self.assertIsNone(parse_command("/ci run please"))
self.assertIsNone(parse_command("/ci run all please"))
self.assertIsNone(parse_command(" /ci run"))
def test_write_access_authorizes_reviewers_and_authors(self) -> None:
@@ -435,6 +443,28 @@ class RunCiCommandTest(unittest.TestCase):
self.assertTrue(github.comments[0].startswith("✅ "))
self.assertIn("Buildkite CI #123", github.comments[0])
def test_run_all_sets_buildkite_environment(self) -> None:
github = FakeGitHub()
buildkite = FakeBuildkite([[], []])
run(make_event(COMMAND_RUN_CI_ALL), github, buildkite)
payload = buildkite.created_builds[0]
self.assertEqual(payload["message"], "PR #42 /ci run all by @reviewer")
self.assertEqual(payload["env"]["RUN_ALL"], "1")
self.assertNotIn("NIGHTLY", payload["env"])
def test_run_nightly_sets_buildkite_environment(self) -> None:
github = FakeGitHub()
buildkite = FakeBuildkite([[], []])
run(make_event(COMMAND_RUN_CI_NIGHTLY), github, buildkite)
payload = buildkite.created_builds[0]
self.assertEqual(payload["message"], "PR #42 /ci run nightly by @reviewer")
self.assertEqual(payload["env"]["RUN_ALL"], "1")
self.assertEqual(payload["env"]["NIGHTLY"], "1")
def test_unapproved_authors_are_denied_without_buildkite(self) -> None:
github = FakeGitHub(
permission="read",
@@ -485,10 +515,15 @@ class RunCiCommandTest(unittest.TestCase):
notify_authorized(event, github)
self.assertEqual(len(github.comments), 1)
self.assertTrue(github.comments[0].startswith("✅ @author"))
self.assertIn("`/ci run`", github.comments[0])
self.assertIn("`/ci retry`", github.comments[0])
self.assertIn(CI_AUTHORIZED_COMMENT_MARKER, github.comments[0])
comment = github.comments[0]
self.assertTrue(comment.startswith("✅ @author"))
self.assertIn("`/ci run` starts a CI build", comment)
self.assertIn("`/ci retry` retries failed jobs", comment)
self.assertIn("CI build for the current PR head", comment)
self.assertIn("only jobs that failed in the latest earlier CI build", comment)
self.assertNotIn(COMMAND_RUN_CI_ALL, comment)
self.assertNotIn(COMMAND_RUN_CI_NIGHTLY, comment)
self.assertIn(CI_AUTHORIZED_COMMENT_MARKER, comment)
def test_ready_label_does_not_notify_after_trusted_approval(self) -> None:
pr = make_pr(labels=[{"name": "ready"}])