@@ -129,18 +129,17 @@ jobs:
129
129
- name : 📦 Install deps (root)
130
130
run : npm ci
131
131
132
- - name : 🔎 Determine bump plan (Changesets JSON)
132
+ - name : 🔎 Determine bump plan (JSON + Fallback )
133
133
id : plan
134
134
shell : bash
135
135
run : |
136
136
set -euo pipefail
137
137
npx -y @changesets/cli@^2 status --since=origin/main --output=json > .changeset-status.json || true
138
-
139
138
node > .changeset-env <<'NODE'
140
139
const fs = require('fs');
141
140
let hasMinor = 0, hasMajor = 0;
142
141
try {
143
- const txt = fs.readFileSync('.changeset-status.json', 'utf8').trim();
142
+ const txt = fs.readFileSync('.changeset-status.json','utf8').trim();
144
143
if (txt) {
145
144
const j = JSON.parse(txt);
146
145
for (const r of (j.releases || [])) {
@@ -151,7 +150,29 @@ jobs:
151
150
} catch (_) {}
152
151
process.stdout.write(`HAS_MINOR=${hasMinor}\nHAS_MAJOR=${hasMajor}\n`);
153
152
NODE
153
+
154
+ source .changeset-env || true
155
+ if [ "${HAS_MINOR}" = "0" ] && [ "${HAS_MAJOR}" = "0" ]; then
156
+ git diff --name-only origin/main...HEAD -- ".changeset/*.md" > .cs-files || true
157
+ if [ -s .cs-files ]; then
158
+ while read -r f; do
159
+ [ -z "${f:-}" ] && continue
160
+ if grep -E ':\s*minor\b' "$f" >/dev/null 2>&1; then HAS_MINOR=1; fi
161
+ if grep -E ':\s*major\b' "$f" >/dev/null 2>&1; then HAS_MAJOR=1; fi
162
+ done < .cs-files
163
+ fi
164
+ {
165
+ echo "HAS_MINOR=${HAS_MINOR}"
166
+ echo "HAS_MAJOR=${HAS_MAJOR}"
167
+ } > .changeset-env
168
+ fi
154
169
cat .changeset-env >> "$GITHUB_ENV"
170
+ {
171
+ echo "### Bump Plan Detection"
172
+ echo
173
+ echo "- HAS_MINOR: ${HAS_MINOR}"
174
+ echo "- HAS_MAJOR: ${HAS_MAJOR}"
175
+ } >> "$GITHUB_STEP_SUMMARY"
155
176
156
177
- name : 🚦 Enforce Snapshot changes require >= minor
157
178
if : env.SNAP_TOTAL != '0'
0 commit comments