π Enterprise-ready release automation and workflow orchestration
A powerful, type-safe CLI tool built for modern development teams that need consistent, reliable release processes across all their projects.
- Quality Gates: Auto-fix linting, type checking, test execution
- Git Operations: Smart version bumping, changelog generation, tagging
- Multi-Platform Publishing: npm, Cloudflare, GitHub releases
- Interactive UI: Beautiful progress indicators with listr2
- Type-Safe: Full TypeScript with comprehensive error handling
- Extensible: Plugin system for custom workflows
- Configurable: Skip steps, customize behavior per project
- AI-Powered: Smart branch names, commit suggestions (coming soon)
- Zero Config: Works out of the box with sensible defaults
- Interactive: Smart deployment configuration and uncommitted changes handling
- Crash-Proof: Robust error handling prevents workflow interruptions
- Fast: Optimized performance with concurrent operations
# Install globally (recommended)
bun install -g @go-corp/workflow
# Or use in project
bun add --dev @go-corp/workflow
# Also available via npm/yarn/pnpm
npm install -g @go-corp/workflow# Interactive release workflow (recommended)
go-workflow release
# β Prompts for deployment targets (npm, Cloudflare)
# β Handles uncommitted changes interactively
# β Executes complete release pipeline
# Release with specific version bump
go-workflow release --type minor
# Skip specific deployments via CLI flags
go-workflow release --skip-cloudflare --skip-npm
# Force release with uncommitted changes
go-workflow release --force
# Non-interactive mode (for CI/CD)
go-workflow release --non-interactive --skip-cloudflare --skip-npm
# Show workflow status
go-workflow statusExecute the complete release workflow with interactive configuration:
π§ Deployment Configuration
----------------------------------------
β π¦ Publish to npm registry? (y/N) Β· true
β οΈ Uncommitted changes detected:
- README.md
? How would you like to handle uncommitted changes? βΊ π Commit all changes now
β
Changes committed
β Quality Gates
β Auto-fix linting issues - β
Fixed
β Type checking - β
Passed
β Running tests - β
No tests found (skipping)
β Git repository analysis - β
golive-dev/workflow on main
β Version calculation - β
2.10.1 β 2.11.0 (minor)
β Deployment configuration - β
Will deploy to: npm
β Release execution
β Update package.json version - β
2.11.0
β Generate changelog - β
CHANGELOG.md updated
β Commit release changes - β
chore: release v2.11.0
β Create git tag - β
v2.11.0
β Push to remote - β
Complete
β Build project - β
Build complete
β Deploy to Cloudflare [SKIPPED]
β Publish to npm - β
v2.11.0 published (you may need to interact with prompts)
β Create GitHub release - β
v2.11.0 released
π Release completed successfully!
π¦ Version: 2.10.1 β 2.11.0
π Repository: golive-dev/workflowOptions:
--type <patch|minor|major>- Force specific version bump--skip-tests- Skip test execution--skip-lint- Skip linting step--skip-cloudflare- Skip Cloudflare deployment (or use interactive prompt)--skip-npm- Skip npm publishing (or use interactive prompt)--non-interactive- Run without prompts (for CI/CD environments)--force- Skip uncommitted changes check--dry-run- Show what would be done without executing (coming soon)--verbose- Show detailed output
Create and manage feature branches with AI-powered suggestions:
go-workflow feature # AI suggests branch name
go-workflow feature "add-user-auth" # Create specific feature
go-workflow feature --auto-merge # Enable auto-merge on PRShow project and workflow status.
Use as a library in your Node.js applications:
import { createReleaseWorkflow, createTaskEngine, createWorkflow, quickRelease } from '@go-corp/workflow'
// Quick release with interactive prompts
await quickRelease({ type: 'minor' })
// Custom workflow (note: createReleaseWorkflow is now async)
const steps = await createReleaseWorkflow({
skipTests: true,
nonInteractive: true, // Skip prompts for programmatic use
skipCloudflare: true,
skipNpm: true
})
const engine = createTaskEngine({ showTimer: true })
const result = await engine.execute(steps)
// Build custom workflows
const customWorkflow = createWorkflow('deploy')
.step('Build', async (ctx, helpers) => {
helpers.setOutput('Building application...')
// Your build logic
})
.step('Deploy', async (ctx, helpers) => {
helpers.setOutput('Deploying to production...')
// Your deploy logic
})
.build()Create .go-workflow.config.js in your project root:
export default {
project: {
type: 'library', // 'library' | 'cli' | 'web-app' | 'api'
packageManager: 'bun' // 'bun' | 'npm' | 'yarn' | 'pnpm'
},
git: {
defaultBranch: 'main',
branchNaming: {
feature: 'feature/{name}',
bugfix: 'bugfix/{name}',
hotfix: 'hotfix/{name}'
}
},
deployments: {
npm: {
enabled: true,
access: 'public'
},
cloudflare: {
enabled: true,
buildCommand: 'npm run build'
}
},
github: {
autoRelease: true,
pullRequests: {
autoMerge: true,
deleteBranch: true
}
}
}- Node.js: >= 18.0.0
- Git: For version control operations
- GitHub CLI (optional): For GitHub integrations (
ghcommand) - Wrangler (optional): For Cloudflare deployments
Install once, use everywhere. Same commands and behavior across all your projects.
Enforces code quality before any release:
- Automatic linting with auto-fix
- TypeScript type checking
- Test execution with coverage
- Build verification
- Semantic versioning based on conventional commits
- Automatic changelog generation
- Git tagging with proper annotations
- Release notes generation
- npm registry publishing
- Cloudflare Workers/Pages deployment
- GitHub releases with assets
- Extensible for custom targets
We welcome contributions! Please see our Contributing Guide for details.
MIT Β© Go Corp
- π Documentation
- π Issue Tracker
- π¬ Discussions
Built with β€οΈ for modern development teams