Compare commits
1 commit
79ae7f8690
...
e74723982d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e74723982d |
4 changed files with 81 additions and 0 deletions
16
gardener/recipes/cascade-rebase.toml
Normal file
16
gardener/recipes/cascade-rebase.toml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# gardener/recipes/cascade-rebase.toml — PR outdated after main moved
|
||||
#
|
||||
# Trigger: PR mergeable=false (stale branch or dismissed approval)
|
||||
# Playbook: rebase only — merge and re-approval happen on subsequent cycles
|
||||
# after CI reruns on the rebased branch (rebase is async via Gitea API)
|
||||
|
||||
name = "cascade-rebase"
|
||||
description = "PR outdated after main moved — mergeable=false or stale approval"
|
||||
priority = 20
|
||||
|
||||
[trigger]
|
||||
pr_mergeable = false
|
||||
|
||||
[[playbook]]
|
||||
action = "rebase-pr"
|
||||
description = "Rebase PR onto main (async — CI reruns, merge on next cycle)"
|
||||
25
gardener/recipes/chicken-egg-ci.toml
Normal file
25
gardener/recipes/chicken-egg-ci.toml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# gardener/recipes/chicken-egg-ci.toml — PR introduces CI step that fails on pre-existing code
|
||||
#
|
||||
# Trigger: New .woodpecker/*.yml in PR + lint/check step + failures on unchanged files
|
||||
# Playbook: make step non-blocking, create per-file issues, create follow-up to remove bypass
|
||||
|
||||
name = "chicken-egg-ci"
|
||||
description = "PR introduces a CI pipeline/linting step that fails on pre-existing code"
|
||||
priority = 10
|
||||
|
||||
[trigger]
|
||||
pr_files = '\.woodpecker/.*\.yml$'
|
||||
step_name = '(?i)(lint|shellcheck|check)'
|
||||
failures_on_unchanged = true
|
||||
|
||||
[[playbook]]
|
||||
action = "make-step-non-blocking"
|
||||
description = "Make failing step non-blocking (|| true) in the PR"
|
||||
|
||||
[[playbook]]
|
||||
action = "lint-per-file"
|
||||
description = "Create per-file fix issues for pre-existing violations (generic linter support)"
|
||||
|
||||
[[playbook]]
|
||||
action = "create-followup-remove-bypass"
|
||||
description = "Create follow-up issue to remove || true once fixes land"
|
||||
20
gardener/recipes/flaky-test.toml
Normal file
20
gardener/recipes/flaky-test.toml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# gardener/recipes/flaky-test.toml — CI fails intermittently
|
||||
#
|
||||
# Trigger: Test step fails + multiple CI attempts (same step, different output)
|
||||
# Playbook: retrigger CI (max 2x), quarantine test if still failing
|
||||
|
||||
name = "flaky-test"
|
||||
description = "CI fails intermittently — same step fails across multiple attempts"
|
||||
priority = 30
|
||||
|
||||
[trigger]
|
||||
step_name = '(?i)test'
|
||||
min_attempts = 2
|
||||
|
||||
[[playbook]]
|
||||
action = "retrigger-ci"
|
||||
description = "Retrigger CI (max 2 retries)"
|
||||
|
||||
[[playbook]]
|
||||
action = "quarantine-test"
|
||||
description = "If still failing, quarantine test and create fix issue"
|
||||
20
gardener/recipes/shellcheck-violations.toml
Normal file
20
gardener/recipes/shellcheck-violations.toml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# gardener/recipes/shellcheck-violations.toml — ShellCheck step fails
|
||||
#
|
||||
# Trigger: Step named *shellcheck* fails with SC#### codes in output
|
||||
# Playbook: parse per-file, create one issue per file, label backlog
|
||||
|
||||
name = "shellcheck-violations"
|
||||
description = "ShellCheck step fails with SC#### codes in output"
|
||||
priority = 40
|
||||
|
||||
[trigger]
|
||||
step_name = '(?i)shellcheck'
|
||||
output = 'SC\d{4}'
|
||||
|
||||
[[playbook]]
|
||||
action = "shellcheck-per-file"
|
||||
description = "Parse output by file, create one fix issue per file with specific SC codes"
|
||||
|
||||
[[playbook]]
|
||||
action = "label-backlog"
|
||||
description = "Label created issues as backlog"
|
||||
Loading…
Add table
Add a link
Reference in a new issue