Skip to content

Commit 6e7055e

Browse files
committed
Only run release build when PR has certain label
1 parent 48a7827 commit 6e7055e

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

.github/workflows/release.yaml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ name: Build and release
22

33
on:
44
push:
5-
branches:
6-
- master
75
tags:
86
- 'v*'
97
- 'cabal-install-*'
@@ -14,8 +12,35 @@ on:
1412
- cron: '0 0 * * *'
1513
workflow_dispatch:
1614

15+
permissions:
16+
pull-requests: read
17+
18+
env:
19+
BUILD_LABEL: "run release build"
20+
1721
jobs:
22+
check-pr-labels:
23+
name: check PR labels
24+
runs-on: ubuntu-latest
25+
outputs:
26+
run_release_workflow: ${{ steps.gen_output.outputs.run_release_workflow }}
27+
steps:
28+
- id: gen_output
29+
run: |
30+
if [ "${{ github.event_name }}" = 'pull_request' ] ; then
31+
run_it=$(if gh api --jq '.labels.[].name' /repos/${{ github.repository }}/pulls/${{ github.event.number }} | grep --quiet '^${{ env.BUILD_LABEL }}$' ; then printf "%s" "yes" ; else printf "%s" "no" ; fi)
32+
echo "${run_it}"
33+
echo run_release_workflow="${run_it}" >> "$GITHUB_OUTPUT"
34+
else
35+
echo run_release_workflow="yes" >> "$GITHUB_OUTPUT"
36+
fi
37+
shell: bash
38+
env:
39+
GH_TOKEN: ${{ github.token }}
40+
1841
release-workflow:
42+
needs: ["check-pr-labels"]
43+
if: ${{ needs.check-pr-labels.outputs.run_release_workflow == 'yes' }}
1944
uses: ./.github/workflows/reusable-release.yml
2045
with:
2146
branches: '["${{ github.ref }}"]'

0 commit comments

Comments
 (0)