@@ -33,8 +33,31 @@ permissions:
3333 packages : write
3434
3535jobs :
36+ check-release :
37+ name : Check Release Window
38+ runs-on : ubuntu-latest
39+ if : github.event.repository.fork == false
40+ outputs :
41+ release-in-progress : ${{ steps.check.outputs.release-in-progress }}
42+ steps :
43+ - name : Check if release ruleset is active
44+ id : check
45+ env :
46+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
47+ shell : bash
48+ run : |
49+ set -euo pipefail
50+ # Ruleset 11911909 is "Release In Progress Access" - see restrict-trunk.yml
51+ if ! ENFORCEMENT=$(gh api /repos/${{ github.repository }}/rulesets/11911909 --jq '.enforcement' 2>/dev/null); then
52+ echo "::warning::Failed to check release ruleset, assuming release in progress"
53+ echo "release-in-progress=true" >> "$GITHUB_OUTPUT"
54+ exit 0
55+ fi
56+ echo "release-in-progress=$([[ "$ENFORCEMENT" == "active" ]] && echo 'true' || echo 'false')" >> "$GITHUB_OUTPUT"
57+
3658 ruby :
37- if : (github.event.repository.fork == false) && (inputs.language == 'ruby' || inputs.language == 'all' || github.event_name == 'schedule')
59+ needs : check-release
60+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'ruby' || inputs.language == 'all' || github.event_name == 'schedule')
3861 name : Ruby
3962 uses : ./.github/workflows/bazel.yml
4063 strategy :
6689 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK_URL }}
6790
6891 python :
69- if : (github.event.repository.fork == false) && (inputs.language == 'python' || inputs.language == 'all' || github.event_name == 'schedule')
92+ needs : check-release
93+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'python' || inputs.language == 'all' || github.event_name == 'schedule')
7094 name : Python
7195 uses : ./.github/workflows/bazel.yml
7296 with :
92116 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK_URL }}
93117
94118 java :
95- if : (github.event.repository.fork == false) && (inputs.language == 'java' || inputs.language == 'all' || github.event_name == 'schedule')
119+ needs : check-release
120+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'java' || inputs.language == 'all' || github.event_name == 'schedule')
96121 name : Java
97122 uses : ./.github/workflows/bazel.yml
98123 with :
@@ -118,7 +143,8 @@ jobs:
118143 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK_URL }}
119144
120145 dotnet :
121- if : (github.event.repository.fork == false) && (inputs.language == 'dotnet' || inputs.language == 'all' || github.event_name == 'schedule')
146+ needs : check-release
147+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'dotnet' || inputs.language == 'all' || github.event_name == 'schedule')
122148 name : DotNet
123149 uses : ./.github/workflows/bazel.yml
124150 with :
@@ -145,7 +171,8 @@ jobs:
145171 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK_URL }}
146172
147173 grid :
148- if : (github.event.repository.fork == false) && (inputs.language == 'grid' || inputs.language == 'all' || github.event_name == 'schedule')
174+ needs : check-release
175+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'grid' || inputs.language == 'all' || github.event_name == 'schedule')
149176 name : Grid
150177 permissions :
151178 contents : write # for creating nightly GitHub release
@@ -173,7 +200,8 @@ jobs:
173200 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK_URL }}
174201
175202 javascript :
176- if : (github.event.repository.fork == false) && (inputs.language == 'javascript' || inputs.language == 'all' || github.event_name == 'schedule')
203+ needs : check-release
204+ if : (github.event.repository.fork == false) && (needs.check-release.outputs.release-in-progress != 'true') && (inputs.language == 'javascript' || inputs.language == 'all' || github.event_name == 'schedule')
177205 name : JavaScript
178206 uses : ./.github/workflows/bazel.yml
179207 with :
0 commit comments