Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,54 @@ jobs:
id: release
uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7

merge-release-pr:
name: Merge Release PR

runs-on: ubuntu-latest

needs: [release-please]

if: github.event_name == 'schedule' && needs.release-please.outputs.releases_created != 'true'

permissions:
actions: write
contents: write
pull-requests: write

env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}

steps:
- name: Find pending release PR
id: pr
run: |
gh pr list --state open --label "autorelease: pending" --json number,headRefName,headRefOid \
--jq '.[0] // empty | "number=\(.number)\nbranch=\(.headRefName)\nsha=\(.headRefOid)"' >> "$GITHUB_OUTPUT"

# Pushes made with GITHUB_TOKEN don't trigger CI, so dispatch it to get the required checks
- name: Run Build & Test on release PR
if: steps.pr.outputs.number
env:
PR_NUMBER: ${{ steps.pr.outputs.number }}
PR_BRANCH: ${{ steps.pr.outputs.branch }}
run: |
gh workflow run build-test.yml --ref "$PR_BRANCH"
sleep 30
gh pr checks "$PR_NUMBER" --required --watch --fail-fast --interval 30

- name: Merge release PR
if: steps.pr.outputs.number
env:
PR_NUMBER: ${{ steps.pr.outputs.number }}
PR_SHA: ${{ steps.pr.outputs.sha }}
run: gh pr merge "$PR_NUMBER" --squash --match-head-commit "$PR_SHA"

# The merge push is made with GITHUB_TOKEN and won't start this workflow on its own
- name: Trigger release
if: steps.pr.outputs.number
run: gh workflow run release.yml --ref main

build-and-publish:
name: Build & Publish

Expand Down
Loading