-
Notifications
You must be signed in to change notification settings - Fork 21
ci: skip most CI checks if title contains citest skip [citest_skip] #220
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideAdds a conditional guard to all CI-related GitHub Actions jobs so they are skipped when the pull request title contains the marker "[citest_skip]". Sequence diagram for conditional CI job execution based on PR titlesequenceDiagram
actor Developer
participant GitHub
participant GitHubActions
participant ansible_lint
participant codespell
participant markdownlint
participant shellcheck
participant woke
Developer->>GitHub: Create or update pull_request
GitHub-->>GitHubActions: emit pull_request event
GitHubActions->>GitHubActions: Evaluate contains(github.event.pull_request.title, [citest_skip])
alt Title contains [citest_skip]
GitHubActions-->>ansible_lint: Skip job (if: !contains(...))
GitHubActions-->>codespell: Skip job
GitHubActions-->>markdownlint: Skip job
GitHubActions-->>shellcheck: Skip job
GitHubActions-->>woke: Skip job
else Title does not contain [citest_skip]
GitHubActions->>ansible_lint: Run job
GitHubActions->>codespell: Run job
GitHubActions->>markdownlint: Run job
GitHubActions->>shellcheck: Run job
GitHubActions->>woke: Run job
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey - I've left some high level feedback:
- These
if: "!contains(github.event.pull_request.title, '[citest_skip]')"conditions will fail on non-pull_requestevents (e.g.push) wheregithub.event.pull_requestis undefined; consider guarding withgithub.event_name == 'pull_request' && !contains(...)or similar. - Since the same
ifcondition is duplicated across multiple workflow files, consider extracting this into a reusable workflow or a shared convention (e.g. a single reusable job that all workflows call) to keep the skip logic consistent and easier to update.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- These `if: "!contains(github.event.pull_request.title, '[citest_skip]')"` conditions will fail on non-`pull_request` events (e.g. `push`) where `github.event.pull_request` is undefined; consider guarding with `github.event_name == 'pull_request' && !contains(...)` or similar.
- Since the same `if` condition is duplicated across multiple workflow files, consider extracting this into a reusable workflow or a shared convention (e.g. a single reusable job that all workflows call) to keep the skip logic consistent and easier to update.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
When we submit a PR for a CI update or docs, we do not want to start CI checking for ansible-lint, qemu, etc. When we are doing CI updates to 30 or more roles, this fires off a lot of unnecessary tests, which sometimes causes the linux-system-roles org in github to be throttled. When submitting a PR that can skip ci, use "[citest_skip]" in the PR title. Signed-off-by: Rich Megginson <rmeggins@redhat.com>
Jakuje
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am ok with this change, given the citest_skip will be used in times where we are sure its really not needed.
From the past I remember that given the CI runs only occasionally, the underlying images are changing, ansible is updated and new failures that need to be fiexed emerge even without changing the roles, that need to be fixed.
I will mostly use it for changelog updates for a new release, and things like updating versions of github actions, or other things which don't need to trigger test/check actions. One of the reasons why I did this is because when I update all roles, and all of those jobs are started, I think we are being throttled by github, because the jobs stay queued for a long time, which unnecessarily delays releases. |
When we submit a PR for a CI update or docs, we do not want to start CI checking
for ansible-lint, qemu, etc. When we are doing CI updates to 30 or more
roles, this fires off a lot of unnecessary tests, which sometimes causes the
linux-system-roles org in github to be throttled.
When submitting a PR that can skip ci, use "[citest_skip]" in the PR title.