# 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@v2 - name: Mount bazel caches uses: actions/cache@v2 with: path: | "~/.cache/bazel" "~/.cache/bazel-repo" key: bazel-cache-${{ hashFiles('**/BUILD.bazel', '**/*.bzl', 'WORKSPACE') }} restore-keys: bazel-cache- - name: bazel test //... env: # Bazelisk will download bazel to here XDG_CACHE_HOME: ~/.cache/bazel-repo run: bazel --bazelrc=.github/workflows/ci.bazelrc --bazelrc=.bazelrc test //... - name: Prepare workspace snippet run: .github/workflows/workspace_snippet.sh ${{ env.GITHUB_REF_NAME }} > release_notes.txt - uses: tibdex/github-app-token@v1 id: generate-token with: app_id: ${{ secrets.BCR_APP_ID }} private_key: ${{ secrets.BCR_APP_PRIVATE_KEY }} - name: Release uses: softprops/action-gh-release@v1 with: prerelease: true # Use GH feature to populate the changelog automatically generate_release_notes: true body_path: release_notes.txt token: ${{ steps.generate-token.outputs.token }}