# 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@v3
        with:
          path: |
            ~/.cache/bazel
            ~/.cache/bazel-repo
          key: bazel-cache-${{ hashFiles('**/BUILD.bazel', '**/*.bzl', 'WORKSPACE') }}
          restore-keys: bazel-cache-
      - name: bazel test //... (release)
        env:
          # Bazelisk will download bazel to here
          XDG_CACHE_HOME: ~/.cache/bazel-repo
        run: bazel --bazelrc=.github/workflows/ci.bazelrc --bazelrc=.bazelrc test //...
      - 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=.github/workflows/ci.bazelrc --bazelrc=.bazelrc run //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
