# Cut a release whenever a new tag is pushed to the repo.
# You should use an annotated tag, like `git tag -a v1.2.3`
# and put the release notes into the commit message for the tag.
name: Release

on:
  push:
    tags:
      - "v*.*.*"

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Mount bazel caches
        uses: actions/cache@v4
        with:
          path: |
            ~/.cache/bazel
            ~/.cache/bazel-repo
          key: bazel-cache-release-${{ hashFiles('.bazelrc', '.bazelversion', '.bazeliskrc', '**/BUILD', '**/BUILD.bazel', '**/*.bzl', 'WORKSPACE', 'WORKSPACE.bazel', 'WORKSPACE.bzlmod', 'MODULE.bazel', 'MODULE.bazel.lock') }}
          restore-keys: bazel-cache-release-
      - name: bazel test //... (release)
        env:
          # Bazelisk will download bazel to here
          XDG_CACHE_HOME: ~/.cache/bazel-repo
        run: |
          bazel --bazelrc=.aspect/bazelrc/ci.bazelrc \
            --bazelrc=.github/workflows/ci.bazelrc \
            --bazelrc=.aspect/bazelrc/bazel6.bazelrc \
            test --config=local //...
      - name: Build release artifacts
        run: |
          if [ -n "$(git status --porcelain)" ]; then
            >&2 echo "ERROR: the git state is not clean, aborting build..."
            exit 1
          fi
          rm -rf /tmp/aspect/release
          bazel --bazelrc=.aspect/bazelrc/ci.bazelrc \
            --bazelrc=.github/workflows/ci.bazelrc \
            --bazelrc=.aspect/bazelrc/bazel6.bazelrc \
            run --config=local //tools/release -- /tmp/aspect/release
      - name: Prepare workspace snippet
        run: .github/workflows/release_prep.sh ${{ env.GITHUB_REF_NAME }} > release_notes.txt
      - name: Release
        uses: softprops/action-gh-release@v1
        with:
          # Use GH feature to populate the changelog automatically
          generate_release_notes: true
          files: |
            /tmp/aspect/release/*
            bazel-lib-*.tar.gz
          body_path: release_notes.txt
          fail_on_unmatched_files: true
