chore: remove broken manual-release workflow and related artifacts (#1576)
The manual-release.yaml workflow has been broken since the v6 alpha rewrite — it calls `npm run validate` which no longer exists. Releases are now handled via the /draft-changelog and release skills instead. - Delete .github/workflows/manual-release.yaml - Delete tools/docs/BUNDLE_DISTRIBUTION_SETUP.md (references deleted workflow) - Remove release:major/minor/patch/watch npm scripts (triggered deleted workflow) Can be restored from git history if a CI-based release workflow is needed again. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
6c2d0195d3
commit
97bfe0a485
|
|
@ -1,193 +0,0 @@
|
||||||
name: Manual Release
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
version_bump:
|
|
||||||
description: Version bump type
|
|
||||||
required: true
|
|
||||||
default: beta
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- beta
|
|
||||||
- alpha
|
|
||||||
- patch
|
|
||||||
- minor
|
|
||||||
- major
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
release:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version-file: ".nvmrc"
|
|
||||||
cache: npm
|
|
||||||
registry-url: https://registry.npmjs.org
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Run tests and validation
|
|
||||||
run: |
|
|
||||||
npm run validate
|
|
||||||
npm run format:check
|
|
||||||
npm run lint
|
|
||||||
|
|
||||||
- name: Configure Git
|
|
||||||
run: |
|
|
||||||
git config user.name "github-actions[bot]"
|
|
||||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
|
|
||||||
- name: Bump version
|
|
||||||
run: |
|
|
||||||
case "${{ github.event.inputs.version_bump }}" in
|
|
||||||
alpha|beta) npm version prerelease --no-git-tag-version --preid=${{ github.event.inputs.version_bump }} ;;
|
|
||||||
*) npm version ${{ github.event.inputs.version_bump }} --no-git-tag-version ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
- name: Get new version and previous tag
|
|
||||||
id: version
|
|
||||||
run: |
|
|
||||||
echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
||||||
echo "previous_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Update installer package.json
|
|
||||||
run: |
|
|
||||||
sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
|
|
||||||
|
|
||||||
# TODO: Re-enable web bundles once tools/cli/bundlers/ is restored
|
|
||||||
# - name: Generate web bundles
|
|
||||||
# run: npm run bundle
|
|
||||||
|
|
||||||
- name: Commit version bump
|
|
||||||
run: |
|
|
||||||
git add .
|
|
||||||
git commit -m "release: bump to v${{ steps.version.outputs.new_version }}"
|
|
||||||
|
|
||||||
- name: Generate release notes
|
|
||||||
id: release_notes
|
|
||||||
run: |
|
|
||||||
# Get commits since last tag
|
|
||||||
COMMITS=$(git log ${{ steps.version.outputs.previous_tag }}..HEAD --pretty=format:"- %s" --reverse)
|
|
||||||
|
|
||||||
# Categorize commits
|
|
||||||
FEATURES=$(echo "$COMMITS" | grep -E "^- (feat|Feature)" || true)
|
|
||||||
FIXES=$(echo "$COMMITS" | grep -E "^- (fix|Fix)" || true)
|
|
||||||
CHORES=$(echo "$COMMITS" | grep -E "^- (chore|Chore)" || true)
|
|
||||||
OTHERS=$(echo "$COMMITS" | grep -v -E "^- (feat|Feature|fix|Fix|chore|Chore|release:|Release:)" || true)
|
|
||||||
|
|
||||||
# Build release notes
|
|
||||||
cat > release_notes.md << 'EOF'
|
|
||||||
## 🚀 What's New in v${{ steps.version.outputs.new_version }}
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if [ ! -z "$FEATURES" ]; then
|
|
||||||
echo "### ✨ New Features" >> release_notes.md
|
|
||||||
echo "$FEATURES" >> release_notes.md
|
|
||||||
echo "" >> release_notes.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "$FIXES" ]; then
|
|
||||||
echo "### 🐛 Bug Fixes" >> release_notes.md
|
|
||||||
echo "$FIXES" >> release_notes.md
|
|
||||||
echo "" >> release_notes.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "$OTHERS" ]; then
|
|
||||||
echo "### 📦 Other Changes" >> release_notes.md
|
|
||||||
echo "$OTHERS" >> release_notes.md
|
|
||||||
echo "" >> release_notes.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "$CHORES" ]; then
|
|
||||||
echo "### 🔧 Maintenance" >> release_notes.md
|
|
||||||
echo "$CHORES" >> release_notes.md
|
|
||||||
echo "" >> release_notes.md
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat >> release_notes.md << 'EOF'
|
|
||||||
|
|
||||||
## 📦 Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npx bmad-method install
|
|
||||||
```
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/bmad-code-org/BMAD-METHOD/compare/${{ steps.version.outputs.previous_tag }}...v${{ steps.version.outputs.new_version }}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Output for GitHub Actions
|
|
||||||
echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
|
|
||||||
cat release_notes.md >> $GITHUB_OUTPUT
|
|
||||||
echo "EOF" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Create and push tag
|
|
||||||
run: |
|
|
||||||
# Check if tag already exists
|
|
||||||
if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
|
|
||||||
echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
|
|
||||||
else
|
|
||||||
git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
|
|
||||||
git push origin "v${{ steps.version.outputs.new_version }}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Push changes to main
|
|
||||||
run: |
|
|
||||||
if git push origin HEAD:main 2>/dev/null; then
|
|
||||||
echo "✅ Successfully pushed to main branch"
|
|
||||||
else
|
|
||||||
echo "⚠️ Could not push to main (protected branch). This is expected."
|
|
||||||
echo "📝 Version bump and tag were created successfully."
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Publish to NPM
|
|
||||||
env:
|
|
||||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
||||||
run: |
|
|
||||||
VERSION="${{ steps.version.outputs.new_version }}"
|
|
||||||
if [[ "$VERSION" == *"alpha"* ]]; then
|
|
||||||
echo "Publishing alpha prerelease version with --tag alpha"
|
|
||||||
npm publish --tag alpha
|
|
||||||
elif [[ "$VERSION" == *"beta"* ]]; then
|
|
||||||
echo "Publishing beta prerelease version with --tag latest"
|
|
||||||
npm publish --tag latest
|
|
||||||
else
|
|
||||||
echo "Publishing stable version with --tag latest"
|
|
||||||
npm publish --tag latest
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Create GitHub Release
|
|
||||||
uses: softprops/action-gh-release@v2
|
|
||||||
with:
|
|
||||||
tag_name: v${{ steps.version.outputs.new_version }}
|
|
||||||
name: "BMad Method v${{ steps.version.outputs.new_version }}"
|
|
||||||
body: |
|
|
||||||
${{ steps.release_notes.outputs.RELEASE_NOTES }}
|
|
||||||
draft: false
|
|
||||||
prerelease: ${{ contains(steps.version.outputs.new_version, 'alpha') || contains(steps.version.outputs.new_version, 'beta') }}
|
|
||||||
|
|
||||||
- name: Summary
|
|
||||||
run: |
|
|
||||||
echo "## 🎉 Successfully released v${{ steps.version.outputs.new_version }}!" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "### 📦 Distribution" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "- **NPM**: Published with @latest tag" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "- **GitHub Release**: https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v${{ steps.version.outputs.new_version }}" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "### ✅ Installation" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "\`\`\`bash" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "npx bmad-method@${{ steps.version.outputs.new_version }} install" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
|
@ -41,10 +41,6 @@
|
||||||
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
||||||
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
||||||
"rebundle": "node tools/cli/bundlers/bundle-web.js rebundle",
|
"rebundle": "node tools/cli/bundlers/bundle-web.js rebundle",
|
||||||
"release:major": "gh workflow run \"Manual Release\" -f version_bump=major",
|
|
||||||
"release:minor": "gh workflow run \"Manual Release\" -f version_bump=minor",
|
|
||||||
"release:patch": "gh workflow run \"Manual Release\" -f version_bump=patch",
|
|
||||||
"release:watch": "gh run watch",
|
|
||||||
"test": "npm run test:schemas && npm run test:install && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
|
"test": "npm run test:schemas && npm run test:install && npm run validate:schemas && npm run lint && npm run lint:md && npm run format:check",
|
||||||
"test:coverage": "c8 --reporter=text --reporter=html npm run test:schemas",
|
"test:coverage": "c8 --reporter=text --reporter=html npm run test:schemas",
|
||||||
"test:install": "node test/test-installation-components.js",
|
"test:install": "node test/test-installation-components.js",
|
||||||
|
|
|
||||||
|
|
@ -1,95 +0,0 @@
|
||||||
# Bundle Distribution Setup (For Maintainers)
|
|
||||||
|
|
||||||
**Audience:** BMAD maintainers setting up bundle auto-publishing
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## One-Time Setup
|
|
||||||
|
|
||||||
Run these commands once to enable auto-publishing:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 1. Create bmad-bundles repo
|
|
||||||
gh repo create bmad-code-org/bmad-bundles --public --description "BMAD Web Bundles"
|
|
||||||
|
|
||||||
# 2. Ensure `main` exists (GitHub Pages API requires a source branch)
|
|
||||||
git clone git@github.com:bmad-code-org/bmad-bundles.git
|
|
||||||
cd bmad-bundles
|
|
||||||
printf '# bmad-bundles\n\nStatic bundles published from BMAD-METHOD.\n' > README.md
|
|
||||||
git add README.md
|
|
||||||
git commit -m "Initial commit"
|
|
||||||
git push origin main
|
|
||||||
cd -
|
|
||||||
|
|
||||||
# 3. Enable GitHub Pages (API replacement for removed --enable-pages flag)
|
|
||||||
gh api repos/bmad-code-org/bmad-bundles/pages --method POST -f source[branch]=main -f source[path]=/
|
|
||||||
# (Optional) confirm status
|
|
||||||
gh api repos/bmad-code-org/bmad-bundles/pages --jq '{status,source}'
|
|
||||||
|
|
||||||
# 4. Create GitHub PAT and add as secret
|
|
||||||
# Go to: https://github.com/settings/tokens/new
|
|
||||||
# Scopes: repo (full control)
|
|
||||||
# Name: bmad-bundles-ci
|
|
||||||
# Then add as secret:
|
|
||||||
gh secret set BUNDLES_PAT --repo bmad-code-org/BMAD-METHOD
|
|
||||||
# (paste PAT when prompted)
|
|
||||||
```
|
|
||||||
|
|
||||||
If the Pages POST returns `409`, the site already exists. If it returns `422` about `main` missing, redo step 2 to push the initial commit.
|
|
||||||
|
|
||||||
**Done.** Bundles auto-publish on every main merge.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## How It Works
|
|
||||||
|
|
||||||
**On main merge:**
|
|
||||||
|
|
||||||
- `.github/workflows/bundle-latest.yaml` runs
|
|
||||||
- Publishes to: `https://bmad-code-org.github.io/bmad-bundles/`
|
|
||||||
|
|
||||||
**On release:**
|
|
||||||
|
|
||||||
- `npm run release:patch` runs `.github/workflows/manual-release.yaml`
|
|
||||||
- Attaches bundles to: `https://github.com/bmad-code-org/BMAD-METHOD/releases/latest`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Test latest channel
|
|
||||||
git push origin main
|
|
||||||
# Wait 2 min, then: curl https://bmad-code-org.github.io/bmad-bundles/
|
|
||||||
|
|
||||||
# Test stable channel
|
|
||||||
npm run release:patch
|
|
||||||
# Check: gh release view
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
**"Permission denied" or auth errors**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Verify PAT secret exists
|
|
||||||
gh secret list --repo bmad-code-org/BMAD-METHOD | grep BUNDLES_PAT
|
|
||||||
|
|
||||||
# If missing, recreate PAT and add secret:
|
|
||||||
gh secret set BUNDLES_PAT --repo bmad-code-org/BMAD-METHOD
|
|
||||||
```
|
|
||||||
|
|
||||||
**GitHub Pages not updating / need to re-check config**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
gh api repos/bmad-code-org/bmad-bundles/pages --jq '{status,source,html_url}'
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Distribution URLs
|
|
||||||
|
|
||||||
**Stable:** `https://github.com/bmad-code-org/BMAD-METHOD/releases/latest`
|
|
||||||
**Latest:** `https://bmad-code-org.github.io/bmad-bundles/`
|
|
||||||
Loading…
Reference in New Issue