Skip to content

Commit 3a0b580

Browse files
authored
ci: Render release PR note previews whenever the PR is open (#824)
Signed-off-by: Prasanth Baskar <prasanth@8gears.com>
1 parent b9aa5ae commit 3a0b580

1 file changed

Lines changed: 35 additions & 8 deletions

File tree

.github/workflows/release-please.yml

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,44 @@ jobs:
124124
git commit -s -m "chore: target next development version ${next_version}"
125125
git push
126126
127+
find-release-prs:
128+
name: Find Open Release PRs
129+
# Previews key off "release PR open", not prs_created, so an
130+
# untouched open PR still re-renders after engine changes. Runs after
131+
# both release-please instances so a PR created this run is found.
132+
needs: [release-please, release-please-chart]
133+
if: ${{ !cancelled() && needs.release-please.result == 'success' }}
134+
runs-on: ubuntu-26.04
135+
timeout-minutes: 5
136+
env:
137+
GH_TOKEN: ${{ github.token }}
138+
outputs:
139+
app_pr: ${{ steps.find.outputs.app_pr }}
140+
chart_pr: ${{ steps.find.outputs.chart_pr }}
141+
steps:
142+
- name: Locate open release PRs by branch
143+
id: find
144+
run: |
145+
find_pr() {
146+
gh pr list --repo "${GITHUB_REPOSITORY}" --state open --base "${GITHUB_REF_NAME}" \
147+
--head "$1" --json number --jq '.[0].number // empty'
148+
}
149+
echo "app_pr=$(find_pr "release-please--branches--${GITHUB_REF_NAME}")" >> "$GITHUB_OUTPUT"
150+
if [ "${GITHUB_REF_NAME}" = "main" ]; then
151+
echo "chart_pr=$(find_pr 'release-please--branches--main--components--chart')" >> "$GITHUB_OUTPUT"
152+
fi
153+
127154
preview-release-notes:
128155
name: Preview Release Notes
129-
needs: [release-please]
130-
if: ${{ needs.release-please.outputs.prs_created == 'true' && needs.release-please.outputs.release_created != 'true' }}
156+
needs: [release-please, find-release-prs]
157+
if: ${{ !cancelled() && needs.find-release-prs.outputs.app_pr != '' && needs.release-please.outputs.release_created != 'true' }}
131158
permissions:
132159
contents: write
133160
pull-requests: write
134161
uses: $/.github/workflows/release-notes-engine.yml
135162
with:
136-
checkout_ref: ${{ fromJSON(needs.release-please.outputs.prs)[0].headBranchName }}
137-
preview_pr_number: ${{ fromJSON(needs.release-please.outputs.prs)[0].number }}
163+
checkout_ref: release-please--branches--${{ github.ref_name }}
164+
preview_pr_number: ${{ needs.find-release-prs.outputs.app_pr }}
138165
secrets:
139166
SYNC_APP_PRIVATE_KEY: ${{ secrets.SYNC_APP_PRIVATE_KEY }}
140167

@@ -278,15 +305,15 @@ jobs:
278305

279306
preview-chart-release-notes:
280307
name: Preview Chart Release Notes
281-
needs: [release-please-chart]
282-
if: ${{ needs.release-please-chart.outputs.prs_created == 'true' && needs.release-please-chart.outputs.release_created != 'true' }}
308+
needs: [release-please-chart, find-release-prs]
309+
if: ${{ needs.find-release-prs.outputs.chart_pr != '' && needs.release-please-chart.outputs.release_created != 'true' }}
283310
permissions:
284311
contents: write
285312
pull-requests: write
286313
uses: $/.github/workflows/release-notes-engine.yml
287314
with:
288-
checkout_ref: ${{ fromJSON(needs.release-please-chart.outputs.prs)[0].headBranchName }}
289-
preview_pr_number: ${{ fromJSON(needs.release-please-chart.outputs.prs)[0].number }}
315+
checkout_ref: release-please--branches--main--components--chart
316+
preview_pr_number: ${{ needs.find-release-prs.outputs.chart_pr }}
290317
component: chart
291318
secrets:
292319
SYNC_APP_PRIVATE_KEY: ${{ secrets.SYNC_APP_PRIVATE_KEY }}

0 commit comments

Comments
 (0)