diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e92e42711..8cee0e21c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,8 +20,35 @@ env: -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache jobs: + changes: + if: github.event_name == 'pull_request' + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + outputs: + relinker: ${{ steps.filter.outputs.relinker }} + code: ${{ steps.filter.outputs.code }} + steps: + - uses: dorny/paths-filter@v4 + id: filter + with: + predicate-quantifier: some-with-excludes + filters: | + relinker: + - 'core/relinker/**' + - 'core/libs/prx/libc/src/specifics/windows/**' + - 'CMakeLists.txt' + - '.github/workflows/build.yml' + code: + - '**' + - '!**/*.md' + - '!docs/**' + relinker: name: Relinker (${{ matrix.os }}) + needs: changes + if: ${{ !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.relinker == 'true') }} runs-on: ${{ matrix.os }} timeout-minutes: 15 strategy: @@ -59,6 +86,8 @@ jobs: - run: ctest --test-dir build-relinker --output-on-failure --timeout 120 linux: + needs: changes + if: ${{ !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.code == 'true') }} runs-on: ubuntu-latest timeout-minutes: 30 steps: @@ -83,6 +112,8 @@ jobs: GALLIUM_OVERRIDE_CPU_CAPS: avx windows: + needs: changes + if: ${{ !cancelled() && (needs.changes.result != 'success' || needs.changes.outputs.code == 'true') }} runs-on: windows-latest timeout-minutes: 45 env: diff --git a/.github/workflows/progress-report.yml b/.github/workflows/progress-report.yml index 3fbf7361b..1a69d7338 100644 --- a/.github/workflows/progress-report.yml +++ b/.github/workflows/progress-report.yml @@ -2,6 +2,10 @@ name: Progress report on: pull_request: + paths: + - 'core/libs/prx/**' + - 'tools/progress.py' + - '.github/workflows/progress-report.yml' permissions: contents: read