Skip to content

Latest commit

 

History

History
247 lines (175 loc) · 7.1 KB

README.md

File metadata and controls

247 lines (175 loc) · 7.1 KB

🚀 Pipeline Creator CLI - Node.js Edition

A powerful CLI tool for creating and managing enterprise-grade CI/CD pipelines on AWS with intelligent automation, built with TypeScript and AWS CDK v2.

✨ Features

  • 🎯 Template-based Generation: Multiple pre-built templates for different project types
  • 🔄 Interactive CLI: User-friendly prompts and command-line interface
  • ☁️ AWS Integration: Built-in AWS CDK support for infrastructure deployment
  • 📊 Pipeline Management: Status monitoring, logs, and notifications
  • 🛠️ TypeScript Support: Full TypeScript implementation with type safety
  • 🧪 Testing Ready: Jest configuration for comprehensive testing

🚀 Quick Start

Installation

# Install globally via npm
npm install -g pipeline-creator-cli

# Or run directly with npx
npx pipeline-creator-cli --help

Basic Usage

# Initialize a new pipeline project
pipeline-node init my-app

# Initialize with specific template
pipeline-node init my-api --template nodejs-api

# List available templates
pipeline-node templates --details

# Generate pipeline files
pipeline-node generate

# Check project status
pipeline-node status

# Deploy to AWS (coming soon)
pipeline-node deploy --environment prod

📋 Available Templates

Template Description Use Cases
python-api Python API with Flask/FastAPI REST APIs, Microservices, Web applications
nodejs-api Node.js API with Express REST APIs, GraphQL APIs, Real-time applications
react-frontend React frontend application SPAs, Web dashboards, PWAs
data-processing Data processing and analytics ETL pipelines, Data analysis, Batch processing
iac Infrastructure as Code with Terraform Infrastructure deployment, Resource management

🛠️ Commands

pipeline-node init [name]

Initialize a new pipeline project with interactive template selection.

Options:

  • -t, --template <type> - Pipeline template type
  • -f, --force - Overwrite existing files

pipeline-node generate

Generate pipeline files from templates based on project configuration.

Options:

  • -t, --template <type> - Specific template to generate
  • -o, --output <path> - Output directory (default: ./pipeline)

pipeline-node templates

List and manage available pipeline templates.

Options:

  • -d, --details - Show detailed template information

pipeline-node status

Show current pipeline project status and configuration.

pipeline-node deploy

Deploy pipeline to AWS (feature in development).

Options:

  • -e, --environment <env> - Deployment environment (default: dev)
  • -r, --region <region> - AWS region (default: us-east-1)

pipeline-node logs [pipeline-name]

View pipeline logs from CloudWatch (feature in development).

Options:

  • -f, --follow - Follow log output
  • -n, --lines <number> - Number of lines to show (default: 50)

pipeline-node notifications

Manage pipeline notifications (feature in development).

Options:

  • -e, --enable - Enable notifications
  • -d, --disable - Disable notifications
  • -c, --channel <channel> - Notification channel (email, slack, teams)

🏗️ Project Structure

After running pipeline-node init and pipeline-node generate, your project will have:

my-project/
├── pipeline.config.json          # Project configuration
├── pipeline/                     # Generated pipeline files
│   ├── buildspec.yml            # AWS CodeBuild specification
│   ├── Dockerfile               # Container configuration
│   └── package.json             # Dependencies (Node.js projects)
└── ... (your application code)

🎯 Template Details

Python API Template

  • Files: buildspec.yml, Dockerfile, requirements.txt
  • Features: Flask/FastAPI ready, ECR integration, Gunicorn server
  • Best for: REST APIs, microservices, web applications

Node.js API Template

  • Files: buildspec.yml, Dockerfile, package.json
  • Features: Express.js setup, multi-stage Docker build, npm integration
  • Best for: REST APIs, GraphQL APIs, real-time applications

React Frontend Template

  • Files: buildspec.yml, Dockerfile
  • Features: Nginx serving, optimized build process, S3 sync ready
  • Best for: Single Page Applications, dashboards, Progressive Web Apps

Data Processing Template

  • Files: buildspec.yml, Dockerfile, requirements.txt
  • Features: Python data stack, batch processing ready, ETL optimized
  • Best for: ETL pipelines, data analysis, batch processing jobs

Infrastructure as Code Template

  • Files: buildspec.yml, main.tf
  • Features: Terraform configuration, AWS provider setup, modular design
  • Best for: Infrastructure deployment, resource management, DevOps automation

🔧 Development

Prerequisites

  • Node.js 18+ and npm
  • TypeScript 5.x
  • AWS CLI configured (for deployment features)

Local Development

# Clone and install dependencies
git clone <repo-url>
cd creator_n
npm install

# Build the project
npm run build

# Run in development mode
npm run dev -- --help

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

Building and Testing

# Clean and build
npm run clean && npm run build

# Test CLI locally
node dist/cli.js --help

# Test with TypeScript directly
npm run dev -- init test-project --template nodejs-api

🧪 Testing

The project uses Jest for testing with TypeScript support:

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

📦 Publishing

# Build for production
npm run build

# Publish to npm
npm publish

# Or publish to npm test registry
npm publish --registry https://registry.npmjs.org/

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆚 Comparison with Python Version

This Node.js edition provides the same core functionality as the Python version but with:

  • TypeScript: Full type safety and better IDE support
  • Modern JavaScript: ES2020+ features and module system
  • npm Ecosystem: Access to the vast npm package repository
  • Jest Testing: Modern testing framework with excellent TypeScript integration
  • Commander.js: Powerful CLI framework with built-in help and validation

Both versions generate the same AWS-compatible pipeline files and provide identical functionality for CI/CD pipeline creation and management.

🔗 Related Projects


Made with ❤️ for enterprise CI/CD automation