name: Publish Latest Bundles on: push: branches: [main] workflow_dispatch: {} permissions: contents: write jobs: bundle-and-publish: runs-on: ubuntu-latest steps: - name: Checkout BMAD-METHOD uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version-file: ".nvmrc" cache: npm - name: Install dependencies run: npm ci - name: Generate bundles run: npm run bundle - name: Create bundle distribution structure run: | mkdir -p dist/bundles # Copy bundles with clean structure cp -r src/modules/bmm/sub-modules/* dist/bundles/ 2>/dev/null || true cp -r src/modules/bmb/sub-modules/* dist/bundles/ 2>/dev/null || true cp -r src/modules/cis/sub-modules/* dist/bundles/ 2>/dev/null || true # Verify bundles were copied (fail if completely empty) if [ ! "$(ls -A dist/bundles)" ]; then echo "❌ ERROR: No bundles found in dist/bundles/" echo "This likely means 'npm run bundle' failed or bundles weren't generated" exit 1 fi # Count bundles per platform for platform in claude-code chatgpt gemini; do if [ -d "dist/bundles/$platform" ]; then COUNT=$(find dist/bundles/$platform -name '*.md' 2>/dev/null | wc -l) echo "✅ $platform: $COUNT bundles" fi done # Create index.html for GitHub Pages cat > dist/bundles/index.html << 'EOF' BMAD Bundles - Latest

BMAD Web Bundles - Latest (Main Branch)

⚠️ Latest Build (Unstable)
These bundles are built from the latest main branch commit. For stable releases, visit GitHub Releases.

Last Updated: $TIMESTAMP

Commit: $COMMIT_SHA

Available Platforms

Claude Code

BMM (BMad Method)
PM Agent | Architect | TEA | Developer | All BMM Agents
BMB (BMad Builder)
Builder Agent
CIS (Creative Intelligence Suite)
CIS Agents

ChatGPT

BMM: Browse BMM Agents
BMB: Browse BMB Agents
CIS: Browse CIS Agents

Gemini

BMM: Browse BMM Agents
BMB: Browse BMB Agents
CIS: Browse CIS Agents

Usage

Copy the raw markdown URL and paste into your AI platform's custom instructions or project knowledge.

Example: https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/claude-code/sub-agents/bmm-agent-pm.md

Installation (Recommended)

For full IDE integration with slash commands, use the installer:

npx bmad-method@alpha install
EOF # Replace placeholders TIMESTAMP=$(date -u +"%Y-%m-%d %H:%M UTC") COMMIT_SHA=$(git rev-parse --short HEAD) sed -i "s/\$TIMESTAMP/$TIMESTAMP/" dist/bundles/index.html sed -i "s/\$COMMIT_SHA/$COMMIT_SHA/" dist/bundles/index.html - name: Checkout bmad-bundles repo uses: actions/checkout@v4 with: repository: bmad-code-org/bmad-bundles path: bmad-bundles token: ${{ secrets.BUNDLES_PAT }} - name: Update bundles run: | # Clear old bundles rm -rf bmad-bundles/* # Copy new bundles cp -r dist/bundles/* bmad-bundles/ # Create .nojekyll for GitHub Pages touch bmad-bundles/.nojekyll # Create README cat > bmad-bundles/README.md << 'EOF' # BMAD Web Bundles (Latest) **⚠️ Unstable Build**: These bundles are auto-generated from the latest `main` branch. For stable releases, visit [GitHub Releases](https://github.com/bmad-code-org/BMAD-METHOD/releases/latest). ## Usage Copy raw markdown URLs for use in AI platforms: - Claude Code: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/claude-code/sub-agents/{agent}.md` - ChatGPT: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/chatgpt/sub-agents/{agent}.md` - Gemini: `https://raw.githubusercontent.com/bmad-code-org/bmad-bundles/main/gemini/sub-agents/{agent}.md` ## Browse Visit [https://bmad-code-org.github.io/bmad-bundles/](https://bmad-code-org.github.io/bmad-bundles/) to browse bundles. ## Installation (Recommended) For full IDE integration: ```bash npx bmad-method@alpha install ``` --- Auto-updated by [BMAD-METHOD](https://github.com/bmad-code-org/BMAD-METHOD) on every main branch merge. EOF - name: Commit and push to bmad-bundles run: | cd bmad-bundles git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add . if git diff --staged --quiet; then echo "No changes to bundles, skipping commit" else COMMIT_SHA=$(cd .. && git rev-parse --short HEAD) git commit -m "Update bundles from BMAD-METHOD@${COMMIT_SHA}" git push echo "✅ Bundles published to GitHub Pages" fi - name: Summary run: | echo "## 🎉 Bundles Published!" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "**Latest bundles** available at:" >> $GITHUB_STEP_SUMMARY echo "- 🌐 Browse: https://bmad-code-org.github.io/bmad-bundles/" >> $GITHUB_STEP_SUMMARY echo "- 📦 Raw files: https://github.com/bmad-code-org/bmad-bundles" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "**Commit**: ${{ github.sha }}" >> $GITHUB_STEP_SUMMARY