From 809f417d03eea082b3999770ceed255c2ae31f29 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:27:27 +0200 Subject: [PATCH 1/9] chore: add generic pipeline checks --- .github/workflows/ci.checks.yaml | 70 ++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/ci.checks.yaml diff --git a/.github/workflows/ci.checks.yaml b/.github/workflows/ci.checks.yaml new file mode 100644 index 0000000..84b0644 --- /dev/null +++ b/.github/workflows/ci.checks.yaml @@ -0,0 +1,70 @@ +name: Pipeline Requirement Checks +on: + push: + branches: + - "**" + workflow_dispatch: +jobs: + ci_checks: + runs-on: ubuntu-latest + outputs: + full_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_full_run_required.outputs.full_run_required }} + test_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_test_run_required.outputs.test_run_required }} + steps: + - uses: actions/checkout@v6 + if: ${{ github.event_name != 'workflow_dispatch' }} + with: + fetch-depth: 0 + + - name: Check full pipeline run required + id: check_full_run_required + if: ${{ github.event_name != 'workflow_dispatch' }} + uses: dorny/paths-filter@v4 + with: + predicate-quantifier: "every" + filters: | + full_run_required: + - "**" + - "!.chart/**" + - "!.github/**" + + - name: Check tests run required + id: check_test_run_required + if: ${{ github.event_name != 'workflow_dispatch' }} + uses: dorny/paths-filter@v4 + with: + predicate-quantifier: "some" + filters: | + test_run_required: + # Python / Django + - "**.py" + - "requirements*.txt" + - "pyproject.toml" + - "setup.cfg" + - "Pipfile" + - "Pipfile.lock" + - "poetry.lock" + - "uv.lock" + - "tox.ini" + - "pytest.ini" + - "**.html" + - "templates/**" + # JavaScript / TypeScript + - "**.js" + - "**.jsx" + - "**.ts" + - "**.tsx" + - "**.mjs" + - "**.cjs" + - "**.vue" + - "**.svelte" + - "package.json" + - "package-lock.json" + - "yarn.lock" + - "pnpm-lock.yaml" + - "tsconfig*.json" + - "jest.config.*" + - "vitest.config.*" + - "babel.config.*" + - "vite.config.*" + - "webpack.config.*" From 18da0edad8f22c48dd28867c856d551051beedd0 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:31:24 +0200 Subject: [PATCH 2/9] chore: rename pipeline --- .github/workflows/{ci.checks.yaml => pipeline-checks.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ci.checks.yaml => pipeline-checks.yaml} (100%) diff --git a/.github/workflows/ci.checks.yaml b/.github/workflows/pipeline-checks.yaml similarity index 100% rename from .github/workflows/ci.checks.yaml rename to .github/workflows/pipeline-checks.yaml From 1d373c5f2d4e4ca3636b7c5ca2ac441376de9980 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:34:27 +0200 Subject: [PATCH 3/9] chore: fix missing workflow --- .github/workflows/pipeline-checks.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pipeline-checks.yaml b/.github/workflows/pipeline-checks.yaml index 84b0644..982dceb 100644 --- a/.github/workflows/pipeline-checks.yaml +++ b/.github/workflows/pipeline-checks.yaml @@ -3,7 +3,13 @@ on: push: branches: - "**" - workflow_dispatch: + workflow_call: + inputs: + runner: + required: false + description: Runner type + default: ubuntu-latest + type: string jobs: ci_checks: runs-on: ubuntu-latest From 6788f274e9243b01c6837f094d2064996ef61a79 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:45:45 +0200 Subject: [PATCH 4/9] chore: rename pipeline --- .github/workflows/pipeline-checks.yaml | 76 -------------------------- 1 file changed, 76 deletions(-) delete mode 100644 .github/workflows/pipeline-checks.yaml diff --git a/.github/workflows/pipeline-checks.yaml b/.github/workflows/pipeline-checks.yaml deleted file mode 100644 index 982dceb..0000000 --- a/.github/workflows/pipeline-checks.yaml +++ /dev/null @@ -1,76 +0,0 @@ -name: Pipeline Requirement Checks -on: - push: - branches: - - "**" - workflow_call: - inputs: - runner: - required: false - description: Runner type - default: ubuntu-latest - type: string -jobs: - ci_checks: - runs-on: ubuntu-latest - outputs: - full_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_full_run_required.outputs.full_run_required }} - test_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_test_run_required.outputs.test_run_required }} - steps: - - uses: actions/checkout@v6 - if: ${{ github.event_name != 'workflow_dispatch' }} - with: - fetch-depth: 0 - - - name: Check full pipeline run required - id: check_full_run_required - if: ${{ github.event_name != 'workflow_dispatch' }} - uses: dorny/paths-filter@v4 - with: - predicate-quantifier: "every" - filters: | - full_run_required: - - "**" - - "!.chart/**" - - "!.github/**" - - - name: Check tests run required - id: check_test_run_required - if: ${{ github.event_name != 'workflow_dispatch' }} - uses: dorny/paths-filter@v4 - with: - predicate-quantifier: "some" - filters: | - test_run_required: - # Python / Django - - "**.py" - - "requirements*.txt" - - "pyproject.toml" - - "setup.cfg" - - "Pipfile" - - "Pipfile.lock" - - "poetry.lock" - - "uv.lock" - - "tox.ini" - - "pytest.ini" - - "**.html" - - "templates/**" - # JavaScript / TypeScript - - "**.js" - - "**.jsx" - - "**.ts" - - "**.tsx" - - "**.mjs" - - "**.cjs" - - "**.vue" - - "**.svelte" - - "package.json" - - "package-lock.json" - - "yarn.lock" - - "pnpm-lock.yaml" - - "tsconfig*.json" - - "jest.config.*" - - "vitest.config.*" - - "babel.config.*" - - "vite.config.*" - - "webpack.config.*" From 947be2dbec63fe6aaebf0531a1b2b95f2211094d Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:47:03 +0200 Subject: [PATCH 5/9] chore: rename --- .github/workflows/ci-requirements.yaml | 76 ++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/ci-requirements.yaml diff --git a/.github/workflows/ci-requirements.yaml b/.github/workflows/ci-requirements.yaml new file mode 100644 index 0000000..395ca52 --- /dev/null +++ b/.github/workflows/ci-requirements.yaml @@ -0,0 +1,76 @@ +name: CI Requirement Checks +on: + push: + branches: + - "**" + workflow_call: + inputs: + runner: + required: false + description: Runner type + default: ubuntu-latest + type: string +jobs: + requirements: + runs-on: ubuntu-latest + outputs: + full_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_full_run_required.outputs.full_run_required }} + test_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_test_run_required.outputs.test_run_required }} + steps: + - uses: actions/checkout@v6 + if: ${{ github.event_name != 'workflow_dispatch' }} + with: + fetch-depth: 0 + + - name: Check full pipeline run required + id: check_full_run_required + if: ${{ github.event_name != 'workflow_dispatch' }} + uses: dorny/paths-filter@v4 + with: + predicate-quantifier: "every" + filters: | + full_run_required: + - "**" + - "!.chart/**" + - "!.github/**" + + - name: Check tests run required + id: check_test_run_required + if: ${{ github.event_name != 'workflow_dispatch' }} + uses: dorny/paths-filter@v4 + with: + predicate-quantifier: "some" + filters: | + test_run_required: + # Python / Django + - "**.py" + - "requirements*.txt" + - "pyproject.toml" + - "setup.cfg" + - "Pipfile" + - "Pipfile.lock" + - "poetry.lock" + - "uv.lock" + - "tox.ini" + - "pytest.ini" + - "**.html" + - "templates/**" + # JavaScript / TypeScript + - "**.js" + - "**.jsx" + - "**.ts" + - "**.tsx" + - "**.mjs" + - "**.cjs" + - "**.vue" + - "**.svelte" + - "package.json" + - "package-lock.json" + - "yarn.lock" + - "pnpm-lock.yaml" + - "tsconfig*.json" + - "jest.config.*" + - "vitest.config.*" + - "babel.config.*" + - "vite.config.*" + - "webpack.config.*" From 7dec7821993e4ffaf8642fa474a0d2095868f138 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Thu, 30 Apr 2026 17:54:50 +0200 Subject: [PATCH 6/9] chore: add outputs --- .github/workflows/ci-requirements.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci-requirements.yaml b/.github/workflows/ci-requirements.yaml index 395ca52..b794e87 100644 --- a/.github/workflows/ci-requirements.yaml +++ b/.github/workflows/ci-requirements.yaml @@ -10,6 +10,13 @@ on: description: Runner type default: ubuntu-latest type: string + outputs: + full_run_required: + description: Whether a full pipeline run is required + value: ${{ jobs.requirements.outputs.full_run_required }} + test_run_required: + description: Whether a test run is required + value: ${{ jobs.requirements.outputs.test_run_required }} jobs: requirements: runs-on: ubuntu-latest From 6683bdf626a2f3986f27a3bdefccec9a25db7891 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Mon, 4 May 2026 15:01:35 +0200 Subject: [PATCH 7/9] chore: remove sonsense force flag --- .github/workflows/ci-requirements.yaml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-requirements.yaml b/.github/workflows/ci-requirements.yaml index b794e87..edf9906 100644 --- a/.github/workflows/ci-requirements.yaml +++ b/.github/workflows/ci-requirements.yaml @@ -19,22 +19,20 @@ on: value: ${{ jobs.requirements.outputs.test_run_required }} jobs: requirements: - runs-on: ubuntu-latest + runs-on: ${{ inputs.runner || 'ubuntu-latest' }} outputs: - full_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_full_run_required.outputs.full_run_required }} - test_run_required: ${{ github.event_name == 'workflow_dispatch' && 'true' || steps.check_test_run_required.outputs.test_run_required }} + full_run_required: ${{ steps.check_full_run_required.outputs.full_run_required }} + test_run_required: ${{ steps.check_test_run_required.outputs.test_run_required }} steps: - - uses: actions/checkout@v6 - if: ${{ github.event_name != 'workflow_dispatch' }} + - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Check full pipeline run required id: check_full_run_required - if: ${{ github.event_name != 'workflow_dispatch' }} uses: dorny/paths-filter@v4 with: - predicate-quantifier: "every" + predicate-quantifier: "some" filters: | full_run_required: - "**" @@ -43,7 +41,6 @@ jobs: - name: Check tests run required id: check_test_run_required - if: ${{ github.event_name != 'workflow_dispatch' }} uses: dorny/paths-filter@v4 with: predicate-quantifier: "some" From ffeda3b043e7ec37de556e326e12dcb8f4c722a5 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Mon, 4 May 2026 16:01:41 +0200 Subject: [PATCH 8/9] chore: correct predicate --- .github/workflows/ci-requirements.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-requirements.yaml b/.github/workflows/ci-requirements.yaml index edf9906..4c6641c 100644 --- a/.github/workflows/ci-requirements.yaml +++ b/.github/workflows/ci-requirements.yaml @@ -21,7 +21,7 @@ jobs: requirements: runs-on: ${{ inputs.runner || 'ubuntu-latest' }} outputs: - full_run_required: ${{ steps.check_full_run_required.outputs.full_run_required }} + full_run_required: ${{ steps.check_full_run_required.outputs.config_changes_only != 'true' }} test_run_required: ${{ steps.check_test_run_required.outputs.test_run_required }} steps: - uses: actions/checkout@v4 @@ -32,12 +32,11 @@ jobs: id: check_full_run_required uses: dorny/paths-filter@v4 with: - predicate-quantifier: "some" + predicate-quantifier: "every" filters: | - full_run_required: - - "**" - - "!.chart/**" - - "!.github/**" + config_changes_only: + - ".chart/**" + - ".github/**" - name: Check tests run required id: check_test_run_required From c0c3f79c8703e8c31f584772f19207b27d0e7a29 Mon Sep 17 00:00:00 2001 From: Andreas Beuge Date: Mon, 4 May 2026 16:33:46 +0200 Subject: [PATCH 9/9] chore: exchange path-filters with git changes --- .github/workflows/ci-requirements.yaml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-requirements.yaml b/.github/workflows/ci-requirements.yaml index 4c6641c..96ad0cd 100644 --- a/.github/workflows/ci-requirements.yaml +++ b/.github/workflows/ci-requirements.yaml @@ -21,7 +21,7 @@ jobs: requirements: runs-on: ${{ inputs.runner || 'ubuntu-latest' }} outputs: - full_run_required: ${{ steps.check_full_run_required.outputs.config_changes_only != 'true' }} + full_run_required: ${{ steps.check_full_run_required.outputs.full_run_required }} test_run_required: ${{ steps.check_test_run_required.outputs.test_run_required }} steps: - uses: actions/checkout@v4 @@ -30,13 +30,16 @@ jobs: - name: Check full pipeline run required id: check_full_run_required - uses: dorny/paths-filter@v4 - with: - predicate-quantifier: "every" - filters: | - config_changes_only: - - ".chart/**" - - ".github/**" + run: | + base="${{ github.event.before }}" + if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ]; then + base="HEAD^" + fi + if git diff --name-only "$base" HEAD | grep -qvE '^(\.chart|\.github)/'; then + echo "full_run_required=true" >> "$GITHUB_OUTPUT" + else + echo "full_run_required=false" >> "$GITHUB_OUTPUT" + fi - name: Check tests run required id: check_test_run_required