From b4886b432eecea45c6c58ee01f2d6163e1e1dcee Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 3 Feb 2026 18:55:24 -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/test_converting_readme.yml | 3 +++ .github/workflows/woke.yml | 3 +++ 10 files changed, 30 insertions(+) diff --git a/.github/workflows/ansible-lint.yml b/.github/workflows/ansible-lint.yml index 46a1133..a82733f 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 b8d1a54..eec5b48 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 111b44f..e4e25cc 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 89cebc5..aa8781c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -14,6 +14,9 @@ on: # yamllint disable-line rule:truthy - cron: 20 17 * * 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 0fbee37..cc35f2e 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 db6b4bb..9f0266b 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 e3d77f4..68a50c7 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 55801c9..82e7e1e 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/test_converting_readme.yml b/.github/workflows/test_converting_readme.yml index 91035b3..1e74557 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 0968d25..4670ea1 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 b89c74a1f67ef465a3d12e00d47c214d0464ac16 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 3 Feb 2026 19:03:10 -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 cc35f2e..764bd71 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 4670ea1..471e7b4 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: