From dbd2cb6633e8fa03087b9687778415e6f13e199e Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 3 Feb 2026 18:55:34 -0700 Subject: [PATCH 1/2] ci: skip most CI checks if title contains citest skip [citest_skip] 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 --- .github/workflows/ansible-lint.yml | 3 +++ .github/workflows/ansible-managed-var-comment.yml | 3 +++ .github/workflows/ansible-test.yml | 3 +++ .github/workflows/codeql.yml | 3 +++ .github/workflows/codespell.yml | 3 +++ .github/workflows/markdownlint.yml | 3 +++ .github/workflows/python-unit-test.yml | 3 +++ .github/workflows/qemu-kvm-integration-tests.yml | 3 +++ .github/workflows/shellcheck.yml | 3 +++ .github/workflows/test_converting_readme.yml | 3 +++ .github/workflows/woke.yml | 3 +++ 11 files changed, 33 insertions(+) diff --git a/.github/workflows/ansible-lint.yml b/.github/workflows/ansible-lint.yml index 46a11330..a82733f1 100644 --- a/.github/workflows/ansible-lint.yml +++ b/.github/workflows/ansible-lint.yml @@ -18,6 +18,9 @@ permissions: contents: read jobs: ansible_lint: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest steps: - name: Update pip, git diff --git a/.github/workflows/ansible-managed-var-comment.yml b/.github/workflows/ansible-managed-var-comment.yml index b8d1a54c..eec5b48f 100644 --- a/.github/workflows/ansible-managed-var-comment.yml +++ b/.github/workflows/ansible-managed-var-comment.yml @@ -15,6 +15,9 @@ permissions: contents: read jobs: ansible_managed_var_comment: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest steps: - name: Update pip, git diff --git a/.github/workflows/ansible-test.yml b/.github/workflows/ansible-test.yml index 111b44fb..e4e25cc1 100644 --- a/.github/workflows/ansible-test.yml +++ b/.github/workflows/ansible-test.yml @@ -18,6 +18,9 @@ permissions: contents: read jobs: ansible_test: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest steps: - name: Update pip, git diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 36d41d2c..2640059d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -14,6 +14,9 @@ on: # yamllint disable-line rule:truthy - cron: 10 1 * * 4 jobs: analyze: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) name: Analyze runs-on: ubuntu-latest permissions: diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 0fbee37c..cc35f2e9 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -7,6 +7,9 @@ permissions: contents: read jobs: codespell: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) name: Check for spelling errors runs-on: ubuntu-latest steps: diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index db6b4bb5..9f0266bb 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -16,6 +16,9 @@ permissions: contents: read jobs: markdownlint: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest steps: - name: Update pip, git diff --git a/.github/workflows/python-unit-test.yml b/.github/workflows/python-unit-test.yml index e3d77f48..68a50c79 100644 --- a/.github/workflows/python-unit-test.yml +++ b/.github/workflows/python-unit-test.yml @@ -16,6 +16,9 @@ permissions: contents: read jobs: python: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) strategy: matrix: pyver_os: diff --git a/.github/workflows/qemu-kvm-integration-tests.yml b/.github/workflows/qemu-kvm-integration-tests.yml index 55801c92..82e7e1ec 100644 --- a/.github/workflows/qemu-kvm-integration-tests.yml +++ b/.github/workflows/qemu-kvm-integration-tests.yml @@ -18,6 +18,9 @@ permissions: statuses: write jobs: scenario: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest strategy: diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index dcb0827f..baea60c7 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -18,6 +18,9 @@ permissions: contents: read jobs: shellcheck: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest steps: - name: Update git diff --git a/.github/workflows/test_converting_readme.yml b/.github/workflows/test_converting_readme.yml index 91035b3c..1e745577 100644 --- a/.github/workflows/test_converting_readme.yml +++ b/.github/workflows/test_converting_readme.yml @@ -15,6 +15,9 @@ permissions: contents: read jobs: test_converting_readme: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) runs-on: ubuntu-latest permissions: contents: write diff --git a/.github/workflows/woke.yml b/.github/workflows/woke.yml index 0968d25e..4670ea16 100644 --- a/.github/workflows/woke.yml +++ b/.github/workflows/woke.yml @@ -5,6 +5,9 @@ on: # yamllint disable-line rule:truthy - pull_request jobs: woke: + if: | + !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || + (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) name: Detect non-inclusive language runs-on: ubuntu-latest steps: From 714c5e33bceebcea88152207a3452212d21fa9ab Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 3 Feb 2026 19:03:19 -0700 Subject: [PATCH 2/2] ci: skip most CI checks if title contains citest skip [citest_skip] 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 --- .github/workflows/codespell.yml | 3 +-- .github/workflows/woke.yml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index cc35f2e9..764bd71d 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -8,8 +8,7 @@ permissions: jobs: codespell: if: | - !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || - (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) + !(github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) name: Check for spelling errors runs-on: ubuntu-latest steps: diff --git a/.github/workflows/woke.yml b/.github/workflows/woke.yml index 4670ea16..471e7b42 100644 --- a/.github/workflows/woke.yml +++ b/.github/workflows/woke.yml @@ -6,8 +6,7 @@ on: # yamllint disable-line rule:truthy jobs: woke: if: | - !((github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) || - (github.event_name == 'push' && contains(github.event.head_commit.message, '[citest_skip]'))) + !(github.event_name == 'pull_request' && contains(github.event.pull_request.title, '[citest_skip]')) name: Detect non-inclusive language runs-on: ubuntu-latest steps: