name: auto-deploy description: Automatically deploy oh-my-gemini to npm and GitHub triggers:
- "deploy"
- "배포"
- "publish"
- "release"
- "자동배포"
Auto-Deploy Skill
Automatically deploy oh-my-gemini to npm and create a GitHub release.
Purpose
Enable automated deployment workflow:
- Version bump
- Build and test
- Publish to npm
- Create GitHub release
- Tag the release
Workflow
Phase 1: Pre-Deployment Checks
-
Verify Build
npm run build -
Run Tests
npm test -
Check Lint
npm run lint -
Type Check
npx tsc --noEmit -
Verify Git Status
- Check for uncommitted changes
- Check current branch (should be main)
- Check if remote is up to date
Phase 2: Version Management
-
Determine Version
- If user specified: use that version
- If patch: increment patch (0.1.0 → 0.1.1)
- If minor: increment minor (0.1.0 → 0.2.0)
- If major: increment major (0.1.0 → 1.0.0)
-
Update package.json
npm version <version> --no-git-tag-version -
Update CHANGELOG.md
- Generate changelog from git commits
- Add new version section
Phase 3: Deployment
-
Create Git Tag
git tag v<version> git push origin v<version> -
Push Changes
git add package.json package-lock.json CHANGELOG.md git commit -m "chore: release v<version>" git push origin main -
Trigger GitHub Actions
- GitHub Actions will automatically:
- Build the project
- Run tests
- Publish to npm
- Create GitHub release
- GitHub Actions will automatically:
Phase 4: Verification
-
Verify npm Publication
- Check npm registry for new version
- Verify package contents
-
Verify GitHub Release
- Check GitHub releases page
- Verify release notes
Usage
Natural Language
> deploy: 버전 0.1.0으로 배포해줘
> 배포: 패치 버전으로 배포해줘
> publish: 마이너 버전으로 배포해줘
> release: 메이저 버전으로 배포해줘
Command
/oh-my-gemini:auto-deploy
/oh-my-gemini:auto-deploy --version 0.1.0
/oh-my-gemini:auto-deploy --patch
/oh-my-gemini:auto-deploy --minor
/oh-my-gemini:auto-deploy --major
Safety Measures
-
Pre-Deployment Checks
- All tests must pass
- Build must succeed
- No uncommitted changes
- Must be on main branch
-
Dry Run Mode
- Use
--dry-runto preview changes - Show what would be deployed
- No actual changes made
- Use
-
Confirmation
- Ask user for confirmation before deploying
- Show version and changes summary
- Wait for explicit approval
-
Rollback Plan
- Keep previous version available
- Document rollback procedure
- Tag previous version as backup
Configuration
Can be configured via .gemini-cli/GEMINI.md:
## Auto-Deploy Settings
- Auto-confirm: false (always ask)
- Pre-deploy-tests: true
- Pre-deploy-lint: true
- Pre-deploy-build: true
- Create-changelog: true
Integration with Self-Improve
Auto-deploy can be combined with self-improve:
> self-improve: 모든 버그를 수정하고 배포해줘
This will:
- Detect and fix all issues
- Run tests to verify fixes
- Deploy if all checks pass