ci: skip e2e tests if versions.bzl is changed
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 019384c..5cd625a 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -70,6 +70,33 @@
# Will look like ["ubuntu-latest", "macos-latest", "windows-latest"]
os: ${{ toJSON(steps.*.outputs.os) }}
+ matrix-prep-folder:
+ # Prepares the 'os' axis of the test matrix
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: dorny/paths-filter@v2
+ id: changes
+ with:
+ filters: |
+ versions:
+ - 'tools/versions.bzl'
+ - id: root
+ run: echo "folder=." >> $GITHUB_OUTPUT
+ # skip e2e if tools/versions.bzl file changed. should only happen when cutting releases.
+ - id: e2e/coreutils
+ if: steps.changes.outputs.versions == 'false'
+ run: echo "folder=e2e/coreutils" >> $GITHUB_OUTPUT
+ - id: e2e/copy_to_directory
+ if: steps.changes.outputs.versions == 'false'
+ run: echo "folder=e2e/copy_to_directory" >> $GITHUB_OUTPUT
+ - id: e2e/smoke
+ if: steps.changes.outputs.versions == 'false'
+ run: echo "folder=e2e/smoke" >> $GITHUB_OUTPUT
+ outputs:
+ # Will look like ["e2e/coreutils", "e2e/copy_to_directory"]
+ folder: ${{ toJSON(steps.*.outputs.folder) }}
+
test:
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}
@@ -85,12 +112,8 @@
config: ${{ fromJSON(needs.matrix-prep-config.outputs.configs) }}
bazelversion: ${{ fromJSON(needs.matrix-prep-bazelversion.outputs.bazelversions) }}
os: ${{ fromJSON(needs.matrix-prep-os.outputs.os) }}
+ folder: ${{ fromJSON(needs.matrix-prep-folder.outputs.folder) }}
bzlmodEnabled: [true, false]
- folder:
- - "."
- - "e2e/coreutils"
- - "e2e/copy_to_directory"
- - "e2e/smoke"
exclude:
# this e2e meant to work under bzlmod
- bzlmodEnabled: false