mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-22 20:36:38 +00:00
test(ci): guard scheduled alert issue wiring
This commit is contained in:
@@ -282,6 +282,9 @@ def check_scheduled_alerts(root: Path) -> list[str]:
|
|||||||
"always()",
|
"always()",
|
||||||
"github.event_name == 'schedule'",
|
"github.event_name == 'schedule'",
|
||||||
"contains(needs.*.result, 'failure')",
|
"contains(needs.*.result, 'failure')",
|
||||||
|
"issues: write",
|
||||||
|
"uses: ./.github/actions/schedule-failure-issue",
|
||||||
|
"github-token: ${{ secrets.GITHUB_TOKEN }}",
|
||||||
)
|
)
|
||||||
missing = [token for token in required if token not in job]
|
missing = [token for token in required if token not in job]
|
||||||
if missing:
|
if missing:
|
||||||
@@ -472,6 +475,12 @@ class SelfTests(unittest.TestCase):
|
|||||||
" alert-on-failure:\n"
|
" alert-on-failure:\n"
|
||||||
" if: always() && github.event_name == 'schedule' && "
|
" if: always() && github.event_name == 'schedule' && "
|
||||||
"contains(needs.*.result, 'failure')\n"
|
"contains(needs.*.result, 'failure')\n"
|
||||||
|
" permissions:\n"
|
||||||
|
" issues: write\n"
|
||||||
|
" steps:\n"
|
||||||
|
" - uses: ./.github/actions/schedule-failure-issue\n"
|
||||||
|
" with:\n"
|
||||||
|
" github-token: ${{ secrets.GITHUB_TOKEN }}\n"
|
||||||
)
|
)
|
||||||
names: list[str] = []
|
names: list[str] = []
|
||||||
for relative in SCHEDULED_ALERT_WORKFLOWS:
|
for relative in SCHEDULED_ALERT_WORKFLOWS:
|
||||||
@@ -492,9 +501,17 @@ class SelfTests(unittest.TestCase):
|
|||||||
self.assertEqual(check_scheduled_alerts(root), [])
|
self.assertEqual(check_scheduled_alerts(root), [])
|
||||||
|
|
||||||
first = root / SCHEDULED_ALERT_WORKFLOWS[0]
|
first = root / SCHEDULED_ALERT_WORKFLOWS[0]
|
||||||
first.write_text(first.read_text().replace("contains(needs.*.result, 'failure')", "false"))
|
mutations = (
|
||||||
self.assertEqual(len(check_scheduled_alerts(root)), 1)
|
("contains(needs.*.result, 'failure')", "false"),
|
||||||
first.write_text(first.read_text().replace("false", "contains(needs.*.result, 'failure')"))
|
("issues: write", "issues: read"),
|
||||||
|
("uses: ./.github/actions/schedule-failure-issue", "uses: actions/checkout@v7"),
|
||||||
|
("github-token: ${{ secrets.GITHUB_TOKEN }}", "github-token: missing"),
|
||||||
|
)
|
||||||
|
for required, replacement in mutations:
|
||||||
|
original = first.read_text()
|
||||||
|
first.write_text(original.replace(required, replacement))
|
||||||
|
self.assertEqual(len(check_scheduled_alerts(root)), 1)
|
||||||
|
first.write_text(original)
|
||||||
|
|
||||||
watchdog.write_text(watchdog.read_text().replace(f'- "{names[0]}"\n', ""))
|
watchdog.write_text(watchdog.read_text().replace(f'- "{names[0]}"\n', ""))
|
||||||
self.assertEqual(len(check_scheduled_alerts(root)), 1)
|
self.assertEqual(len(check_scheduled_alerts(root)), 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user