Skip to content

feat: comprehensive MoroJS CLI toolkit v1.0.0 #5

feat: comprehensive MoroJS CLI toolkit v1.0.0

feat: comprehensive MoroJS CLI toolkit v1.0.0 #5

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
lint-and-format:
name: Lint and Format
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Check formatting
run: npm run format
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 21]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
- name: Generate coverage report
run: npm run test -- --coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage/lcov.info
flags: unittests
name: codecov-umbrella
if: matrix.node-version == 20
cli-integration-test:
name: CLI Integration Tests
runs-on: ubuntu-latest
needs: [lint-and-format]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build CLI
run: npm run build
- name: Test CLI help command
run: node dist/cli.js --help
- name: Test CLI examples command
run: node dist/cli.js examples
- name: Test CLI middleware list command
run: node dist/cli.js middleware list
- name: Test CLI module generation (dry run)
run: |
mkdir -p /tmp/test-cli
cd /tmp/test-cli
node ${{ github.workspace }}/dist/cli.js generate test-module --features=websocket,database
ls -la test-module/
build:
name: Build
runs-on: ubuntu-latest
needs: [lint-and-format, test]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Verify CLI executable
run: node dist/cli.js --version
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
security-audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run security audit
run: npm audit --audit-level moderate