Report required CI checks for skipped paths

The required compile-and-test checks come from ci.yml, which is
path-filtered. A workflow skipped by path filtering leaves its
required checks pending forever, so bonsai-only pull requests were
blocked. Trigger the workflow unconditionally, detect relevant
changes in a changes job, and skip the heavy matrix job with an if
condition (a job skipped by a conditional is reported as success).

Generated with the assistance of an AI coding tool.
This commit is contained in:
CyrilWaechter
2026-09-14 19:27:39 +02:00
parent 243f0f32dc
commit b08de6fa7e
+41 -28
View File
@@ -2,36 +2,48 @@ name: ci
on:
push:
paths: &ci_paths
- 'src/bcf/**'
- 'src/bsdd/**'
- 'src/examples/**'
- 'src/ifcblender/**'
- 'src/ifcconvert/**'
- 'src/ifcdiff/**'
- 'src/ifcgeom/**'
- 'src/ifcgeomserver/**'
- 'src/ifcmax/**'
- 'src/ifc5d/**'
- 'src/ifcedit/**'
- 'src/ifcmcp/**'
- 'src/ifcopenshell-python/**'
- '!src/ifcopenshell-python/docs/**'
- 'src/ifcparse/**'
- 'src/ifcpatch/**'
- 'src/ifcquery/**'
- 'src/ifctester/**'
- 'src/ifcwrap/**'
- 'src/svgfill/**'
- 'src/serializers/**'
- 'conda/**'
- 'cmake/**'
- 'test/**'
- '.github/workflows/ci.yml'
pull_request:
paths: *ci_paths
jobs:
changes:
runs-on: ubuntu-22.04
outputs:
code: ${{ steps.filter.outputs.code }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
code:
- 'src/bcf/**'
- 'src/bsdd/**'
- 'src/examples/**'
- 'src/ifcblender/**'
- 'src/ifcconvert/**'
- 'src/ifcdiff/**'
- 'src/ifcgeom/**'
- 'src/ifcgeomserver/**'
- 'src/ifcmax/**'
- 'src/ifc5d/**'
- 'src/ifcedit/**'
- 'src/ifcmcp/**'
- 'src/ifcopenshell-python/**'
- '!src/ifcopenshell-python/docs/**'
- 'src/ifcparse/**'
- 'src/ifcpatch/**'
- 'src/ifcquery/**'
- 'src/ifctester/**'
- 'src/ifcwrap/**'
- 'src/svgfill/**'
- 'src/serializers/**'
- 'conda/**'
- 'cmake/**'
- 'test/**'
- '.github/workflows/ci.yml'
activate:
runs-on: ubuntu-22.04
if: |
@@ -42,7 +54,8 @@ jobs:
compile-and-test:
runs-on: ubuntu-22.04
needs: activate
needs: [activate, changes]
if: needs.changes.outputs.code == 'true'
strategy:
fail-fast: false
matrix: