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