name: CI

# Controls when the action will run.
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [main]
  pull_request:
    branches: [main]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  # matrix-prep-* steps dynamically generate a bit of JSON depending on whether our action has
  # access to repository secrets. When running on a pull_request from a fork, the author is
  # untrusted so the secret will be absent. Insanely complex for how simple this requirement is...
  # inspired from
  # https://stackoverflow.com/questions/65384420/how-to-make-a-github-action-matrix-element-conditional

  matrix-prep-config:
    # Prepares the 'config' axis of the test matrix
    runs-on: ubuntu-latest
    env:
      ENGFLOW_PRIVATE_KEY: ${{ secrets.ENGFLOW_PRIVATE_KEY }}
    steps:
      - id: local
        run: echo "config=local" >> $GITHUB_OUTPUT
      - id: rbe
        run: echo "config=rbe" >> $GITHUB_OUTPUT
        # Don't run RBE if there are no EngFlow creds which is the case on forks
        if: ${{ env.ENGFLOW_PRIVATE_KEY != '' }}
    outputs:
      # Will look like '["local", "rbe"]'
      configs: ${{ toJSON(steps.*.outputs.config) }}

  matrix-prep-bazelversion:
    # Prepares the 'bazelversion' axis of the test matrix
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - id: bazel_6
        run: echo "bazelversion=$(head -n 1 .bazelversion)" >> $GITHUB_OUTPUT
      - id: bazel_7
        run: echo "bazelversion=7.0.0-pre.20230530.3" >> $GITHUB_OUTPUT
      - id: bazel_5
        run: echo "bazelversion=5.4.1" >> $GITHUB_OUTPUT
    outputs:
      # Will look like '["<version from .bazelversion>", "7.0.0-pre.*", "5.4.1"]'
      bazelversions: ${{ toJSON(steps.*.outputs.bazelversion) }}

  matrix-prep-os:
    # Prepares the 'os' axis of the test matrix
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - id: linux
        run: echo "os=ubuntu-latest" >> $GITHUB_OUTPUT
      - id: macos
        run: echo "os=macos-latest" >> $GITHUB_OUTPUT
        # Only run on main branch (or PR branches that contain 'macos') to minimize macOS minutes (billed at 10X)
        # https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#included-storage-and-minutes
        if: ${{ github.ref == 'refs/heads/main' || contains(github.ref, 'macos') }}
      - id: windows
        run: echo "os=windows-latest" >> $GITHUB_OUTPUT
        # Only run on main branch (or PR branches that contain 'windows') to minimize Windows minutes (billed at 2X)
        # https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#included-storage-and-minutes
        if: ${{ github.ref == 'refs/heads/main' || contains(github.head_ref, 'windows') }}
    outputs:
      # Will look like ["ubuntu-latest", "macos-latest", "windows-latest"]
      os: ${{ toJSON(steps.*.outputs.os) }}

  test:
    # The type of runner that the job will run on
    runs-on: ${{ matrix.os }}

    needs:
      - matrix-prep-config
      - matrix-prep-bazelversion
      - matrix-prep-os

    strategy:
      fail-fast: false
      matrix:
        config: ${{ fromJSON(needs.matrix-prep-config.outputs.configs) }}
        bazelversion: ${{ fromJSON(needs.matrix-prep-bazelversion.outputs.bazelversions) }}
        os: ${{ fromJSON(needs.matrix-prep-os.outputs.os) }}
        bzlmodEnabled: [true, false]
        folder:
          - "."
          - "e2e/coreutils"
          - "e2e/copy_to_directory"
          - "e2e/smoke"
        exclude:
          # this e2e meant to work under bzlmod
          - bzlmodEnabled: false
            folder: bzlmod_write_source_files_external

          # Don't test Bazel 5.3 with bzlmod. (Unrecognized option: --enable_bzlmod)
          - bzlmodEnabled: true
            bazelversion: 5.4.1
          # Don't test MacOS with RBE to minimize MacOS minutes (billed at 10X)
          - config: rbe
            os: macos-latest
          # Don't test MacOS with Bazel 5 to minimize MacOS minutes (billed at 10X)
          - bazelversion: 5.4.1
            os: macos-latest
          # Don't test MacOS with Bazel 7 to minimize MacOS minutes (billed at 10X)
          - bazelversion: 7.0.0-pre.20230530.3
            os: macos-latest
          # Don't test Windows with RBE to minimize Windows minutes (billed at 2X)
          - config: rbe
            os: windows-latest
          # Don't test Windows with Bazel 5 to minimize Windows minutes (billed at 2X)
          - bazelversion: 5.4.1
            os: windows-latest
          # Don't test Windows with Bazel 7 to minimize Windows minutes (billed at 2X)
          - bazelversion: 7.0.0-pre.20230530.3
            os: windows-latest
          # TODO: fix or disable the following build & test on Windows
          # //lib/tests/coreutils:test_sha256sum FAILED in 2 out of 2 in 0.2s
          # //lib/tests/coreutils:test_sha512sum FAILED in 2 out of 2 in 0.2s
          # //docs:update_0_test FAILED TO BUILD
          # //docs:update_10_test FAILED TO BUILD
          # //docs:update_11_test FAILED TO BUILD
          # //docs:update_12_test FAILED TO BUILD
          # //docs:update_13_test FAILED TO BUILD
          - folder: .
            os: windows-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under ${{ github.workspace }} , so your job can access it
      - uses: actions/checkout@v3

      - name: Mount bazel caches
        uses: actions/cache@v3
        with:
          path: |
            ~/.cache/bazel
            ~/.cache/bazel-repo
          key: bazel-cache-${{ hashFiles('**/BUILD.bazel', '**/*.bzl', 'WORKSPACE') }}
          restore-keys: bazel-cache-

      - name: Configure Bazel version
        if: ${{ matrix.os != 'windows-latest' }}
        working-directory: ${{ matrix.folder }}
        # Overwrite the .bazelversion instead of using USE_BAZEL_VERSION so that Bazelisk
        # still bootstraps Aspect CLI from configuration in .bazeliskrc. Aspect CLI will
        # then use .bazelversion to determine which Bazel version to use.
        # Also delete the .aspect/bazelrc/bazel6.bazelrc file if we are not testing
        # against Bazel 6 which has a try-import in the root .bazelrc for local development.
        run: |
          BAZEL_VERSION=${{ matrix.bazelversion }}
          echo "${{ matrix.bazelversion }}" > .bazelversion
          if [ ${BAZEL_VERSION::1} != "6" ]; then rm -f .aspect/bazelrc/bazel6.bazelrc; fi

      - name: Configure Bazel version (Windows)
        if: ${{ matrix.os == 'windows-latest' }}
        working-directory: ${{ matrix.folder }}
        # Overwrite the .bazelversion instead of using USE_BAZEL_VERSION so that Bazelisk
        # still bootstraps Aspect CLI from configuration in .bazeliskrc. Aspect CLI will
        # then use .bazelversion to determine which Bazel version to use.
        # Also delete the .aspect/bazelrc/bazel6.bazelrc file if we are not testing
        # against Bazel 6 which has a try-import in the root .bazelrc for local development.
        run: |
          echo "${{ matrix.bazelversion }}" > .bazelversion
          $BAZEL_MAJOR_VERSION = "${{ matrix.bazelversion }}".substring(0, 1)
          if ($BAZEL_MAJOR_VERSION -ne "6") {
            rm -Force .aspect/bazelrc/bazel6.bazelrc
          }

      - name: Set bzlmod flag
        # Store the --enable_bzlmod flag that we add to the test command below
        # only when we're running bzlmod in our test matrix.
        id: set_bzlmod_flag
        if: matrix.bzlmodEnabled
        run: echo "bzlmod_flag=--enable_bzlmod" >> $GITHUB_OUTPUT

      - name: Write engflow credentials
        if: ${{ matrix.config == 'rbe' }}
        working-directory: ${{ matrix.folder }}
        run: |
          touch engflow.crt engflow.key
          chmod 0600 engflow.crt engflow.key
          echo "$ENGFLOW_CLIENT_CRT" > engflow.crt
          echo "$ENGFLOW_PRIVATE_KEY" > engflow.key
        env:
          ENGFLOW_CLIENT_CRT: ${{ secrets.ENGFLOW_CLIENT_CRT }}
          ENGFLOW_PRIVATE_KEY: ${{ secrets.ENGFLOW_PRIVATE_KEY }}

      - name: bazel test //...
        if: ${{ matrix.os != 'windows-latest' }}
        working-directory: ${{ matrix.folder }}
        run: |
          BAZEL_VERSION=${{ matrix.bazelversion }}
          bazel --bazelrc=${{ github.workspace }}/.aspect/bazelrc/ci.bazelrc \
            --bazelrc=${{ github.workspace }}/.github/workflows/ci.bazelrc \
            --bazelrc=${{ github.workspace }}/.aspect/bazelrc/bazel${BAZEL_VERSION::1}.bazelrc \
            --bazelrc=.bazelrc \
            test --config=${{ matrix.config }} //...
        env:
          # Bazelisk will download bazel to here
          XDG_CACHE_HOME: ~/.cache/bazel-repo

      - name: bazel test //... (Windows)
        # A different run command is needed on Windows to account for differences between bash and Powershell
        if: ${{ matrix.os == 'windows-latest' }}
        working-directory: ${{ matrix.folder }}
        run: |
          $BAZEL_MAJOR_VERSION = "${{ matrix.bazelversion }}".substring(0, 1)
          bazel --bazelrc=${{ github.workspace }}/.aspect/bazelrc/ci.bazelrc `
            --bazelrc=${{ github.workspace }}/.github/workflows/ci.bazelrc `
            --bazelrc=${{ github.workspace }}/.aspect/bazelrc/bazel$BAZEL_MAJOR_VERSION.bazelrc `
            --bazelrc=.bazelrc `
            ${{ steps.set_bzlmod_flag.outputs.bzlmod_flag }} `
            test --config=${{ matrix.config }} //...
        env:
          # Bazelisk will download bazel to here
          XDG_CACHE_HOME: ~/.cache/bazel-repo

      - name: integration tests
        # Don't run integration tests on Windows since they are bash scripts and Windows runs Powershell
        if: ${{ matrix.folder == '.' && matrix.os != 'windows-latest' }}
        # Find all shell scripts within e2e, echo the filename, execute, fail on error
        run: find e2e/*.sh -maxdepth 1 -type f -exec sh -c 'echo "\n\n------------------------------- $0 -------------------------------" && "$0" || kill $PPID' \{\} \;
