|
3 | 3 | push: |
4 | 4 | branches: [main] |
5 | 5 | 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 |
6 | 11 |
|
7 | 12 | jobs: |
8 | 13 | release: |
|
58 | 63 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |
59 | 64 | NPM_CONFIG_PROVENANCE: true |
60 | 65 |
|
61 | | - # NEW: Create MCPB Release (only when packages are actually published) |
| 66 | + # Create MCPB Release when npm packages were published, or when manually forced |
62 | 67 | - name: Create MCPB Release |
63 | | - if: steps.changesets.outputs.published == 'true' |
| 68 | + if: steps.changesets.outputs.published == 'true' || inputs.force_mcpb_release == 'true' |
64 | 69 | env: |
65 | 70 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
66 | 71 | run: | |
@@ -221,19 +226,40 @@ jobs: |
221 | 226 | # NEW: Generate Final Summary |
222 | 227 | - name: Generate Final Summary |
223 | 228 | if: always() |
| 229 | + env: |
| 230 | + PUBLISHED_PACKAGES: ${{ steps.changesets.outputs.publishedPackages }} |
224 | 231 | run: | |
225 | 232 | echo "## 📊 Public Release Workflow Summary" >> $GITHUB_STEP_SUMMARY |
226 | 233 | echo "" >> $GITHUB_STEP_SUMMARY |
227 | 234 | 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 |
231 | 256 | if [ -d "mcpb-builds" ] && [ -n "$(find mcpb-builds -name "*.mcpb" -type f 2>/dev/null)" ]; then |
232 | 257 | 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 |
234 | 263 | else |
235 | | - echo "MCPB Packages: **0**" >> $GITHUB_STEP_SUMMARY |
| 264 | + echo "### 🧩 MCPB Packages Built: 0" >> $GITHUB_STEP_SUMMARY |
236 | 265 | fi |
237 | | - |
238 | | - echo "" >> $GITHUB_STEP_SUMMARY |
239 | | - echo "Workflow Complete: **$(date '+%Y-%m-%d %H:%M:%S')**" >> $GITHUB_STEP_SUMMARY |
|
0 commit comments