Skip to content

Commit 6deddba

Browse files
authored
fix(release): decouple MCPB release from npm publish gate (#246)
- Add workflow_dispatch input to force MCPB release independently of npm publishing - Fix MCPB release condition to also trigger on force_mcpb_release input - Improve final summary to list each published npm package with version
1 parent 20eb3b3 commit 6deddba

1 file changed

Lines changed: 36 additions & 10 deletions

File tree

.github/workflows/release.yml

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ on:
33
push:
44
branches: [main]
55
workflow_dispatch:
6+
inputs:
7+
force_mcpb_release:
8+
description: 'Force MCPB release even if no npm packages were published'
9+
type: boolean
10+
default: false
611

712
jobs:
813
release:
@@ -58,9 +63,9 @@ jobs:
5863
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
5964
NPM_CONFIG_PROVENANCE: true
6065

61-
# NEW: Create MCPB Release (only when packages are actually published)
66+
# Create MCPB Release when npm packages were published, or when manually forced
6267
- name: Create MCPB Release
63-
if: steps.changesets.outputs.published == 'true'
68+
if: steps.changesets.outputs.published == 'true' || inputs.force_mcpb_release == 'true'
6469
env:
6570
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6671
run: |
@@ -221,19 +226,40 @@ jobs:
221226
# NEW: Generate Final Summary
222227
- name: Generate Final Summary
223228
if: always()
229+
env:
230+
PUBLISHED_PACKAGES: ${{ steps.changesets.outputs.publishedPackages }}
224231
run: |
225232
echo "## 📊 Public Release Workflow Summary" >> $GITHUB_STEP_SUMMARY
226233
echo "" >> $GITHUB_STEP_SUMMARY
227234
echo "Branch: **${{ github.ref_name }}**" >> $GITHUB_STEP_SUMMARY
228-
echo "NPM Published: **$([ "${{ steps.changesets.outputs.published }}" == "true" ] && echo "Yes" || echo "No")**" >> $GITHUB_STEP_SUMMARY
229-
230-
# Show MCPB info if packages were built
235+
echo "Workflow Complete: **$(date '+%Y-%m-%d %H:%M:%S')**" >> $GITHUB_STEP_SUMMARY
236+
echo "" >> $GITHUB_STEP_SUMMARY
237+
238+
# NPM published packages
239+
if [ "${{ steps.changesets.outputs.published }}" == "true" ] && [ -n "$PUBLISHED_PACKAGES" ] && [ "$PUBLISHED_PACKAGES" != "[]" ]; then
240+
NPM_COUNT=$(echo "$PUBLISHED_PACKAGES" | node -e "process.stdout.write(JSON.parse(require('fs').readFileSync('/dev/stdin','utf8')).length.toString())")
241+
echo "### 📦 NPM Packages Published: $NPM_COUNT" >> $GITHUB_STEP_SUMMARY
242+
echo "" >> $GITHUB_STEP_SUMMARY
243+
echo "$PUBLISHED_PACKAGES" | node -e "
244+
const pkgs = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
245+
pkgs.forEach(p => process.stdout.write('- \`' + p.name + '@' + p.version + '\`\n'));
246+
" >> $GITHUB_STEP_SUMMARY
247+
else
248+
echo "### 📦 NPM Packages Published: 0" >> $GITHUB_STEP_SUMMARY
249+
echo "" >> $GITHUB_STEP_SUMMARY
250+
echo "_No new versions to publish (all packages already at current version)_" >> $GITHUB_STEP_SUMMARY
251+
fi
252+
253+
echo "" >> $GITHUB_STEP_SUMMARY
254+
255+
# MCPB packages
231256
if [ -d "mcpb-builds" ] && [ -n "$(find mcpb-builds -name "*.mcpb" -type f 2>/dev/null)" ]; then
232257
MCPB_COUNT=$(find mcpb-builds -name "*.mcpb" -type f | wc -l | tr -d ' ')
233-
echo "MCPB Packages: **$MCPB_COUNT**" >> $GITHUB_STEP_SUMMARY
258+
echo "### 🧩 MCPB Packages Built: $MCPB_COUNT" >> $GITHUB_STEP_SUMMARY
259+
echo "" >> $GITHUB_STEP_SUMMARY
260+
find mcpb-builds -name "*.mcpb" -type f | sort | while read f; do
261+
echo "- \`$(basename $f)\`" >> $GITHUB_STEP_SUMMARY
262+
done
234263
else
235-
echo "MCPB Packages: **0**" >> $GITHUB_STEP_SUMMARY
264+
echo "### 🧩 MCPB Packages Built: 0" >> $GITHUB_STEP_SUMMARY
236265
fi
237-
238-
echo "" >> $GITHUB_STEP_SUMMARY
239-
echo "Workflow Complete: **$(date '+%Y-%m-%d %H:%M:%S')**" >> $GITHUB_STEP_SUMMARY

0 commit comments

Comments
 (0)