Skip to content

A powerful CLI tool for creating and managing enterprise-grade CI/CD pipelines on AWS with intelligent automation - Node.js Edition"

License

Notifications You must be signed in to change notification settings

amandladev/node-pipeline-creator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ 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

About

A powerful CLI tool for creating and managing enterprise-grade CI/CD pipelines on AWS with intelligent automation - Node.js Edition"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •