
Cicd Pipeline Generator
Generate a GitHub Actions workflow with lint, test, coverage upload, and build jobs for Node.js projects.
Overview
CI/CD Pipeline Generator is an agent skill for the Ship phase that drafts a GitHub Actions lint-test-build workflow for Node.js.
Install
npx skills add https://github.com/ailabs-393/ai-labs-claude-skills --skill cicd-pipeline-generatorWhat is this skill?
- GitHub Actions workflow on push/PR to main and develop
- Separate lint, test, and build jobs with Node 18.x
- npm ci, lint, test, and optional test:coverage with Codecov upload
- Build job gated on lint + test success
- Uses actions/checkout@v4 and actions/setup-node@v4 with npm cache
- 3 CI jobs (lint, test, build) in generated workflow
Adoption & trust: 784 installs on skills.sh; 399 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your repo has npm scripts but no consistent CI gate on pull requests and main.
Who is it for?
Indie Node 18 projects on GitHub that need a first-pass Actions pipeline without hand-writing every step.
Skip if: Polyglot monorepos, non-GitHub CI (GitLab, CircleCI), or stacks that do not use npm lint/test scripts as shown in the template.
When should I use this skill?
You need a baseline GitHub Actions pipeline for Node with lint, test, coverage, and build on push/PR.
What do I get? / Deliverables
You get a multi-job GitHub Actions YAML wired for lint, tests, coverage upload, and a dependent build job.
- GitHub Actions workflow YAML (CI/CD Pipeline)
Recommended Skills
Journey fit
How it compares
Starter generator for GitHub Actions YAML—not a hosted CI product or Terraform deploy pipeline.
Common Questions / FAQ
Who is cicd-pipeline-generator for?
Solo builders on GitHub using Node.js who want lint, test, and build automation without authoring Actions from scratch.
When should I use cicd-pipeline-generator?
During Ship when you are adding PR checks, coverage reporting, or a build job before deploy hooks.
Is cicd-pipeline-generator safe to install?
It suggests workflows that use secrets like CODECOV_TOKEN; review the Security Audits panel on this Prism page and trim steps you do not need.
SKILL.md
READMESKILL.md - Cicd Pipeline Generator
name: CI/CD Pipeline on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] env: NODE_VERSION: '18.x' jobs: lint: name: Lint Code runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Run linter run: npm run lint test: name: Run Tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.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 continue-on-error: true - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 if: success() with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage/coverage-final.json flags: unittests name: codecov-umbrella build: name: Build Application runs-on: ubuntu-latest needs: [lint, test] steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: Install dependencies run: npm ci - name: Build run: npm run build - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: build-output path: .next/ retention-days: 7 deploy: name: Deploy to Production runs-on: ubuntu-latest needs: [build] if: github.ref == 'refs/heads/main' && github.event_name == 'push' environment: name: production url: https://your-app.vercel.app steps: - uses: actions/checkout@v4 - name: Deploy to Vercel uses: amondnet/vercel-action@v25 with: vercel-token: ${{ secrets.VERCEL_TOKEN }} vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} vercel-args: '--prod' image: node:18 stages: - install - lint - test - build - deploy variables: NODE_ENV: "production" NPM_CONFIG_CACHE: "$CI_PROJECT_DIR/.npm" cache: key: files: - package-lock.json paths: - node_modules/ - .npm/ install_dependencies: stage: install script: - npm ci artifacts: paths: - node_modules/ expire_in: 1 hour lint: stage: lint needs: [install_dependencies] script: - npm run lint allow_failure: false test: stage: test needs: [install_dependencies] script: - npm test - npm run test:coverage coverage: '/Lines\s*:\s*(\d+\.\d+)%/' artifacts: reports: coverage_report: coverage_format: cobertura path: coverage/cobertura-coverage.xml paths: - coverage/ expire_in: 30 days build: stage: build needs: [lint, test] script: - npm run build artifacts: paths: - .next/ - public/ expire_in: 1 week only: - main - develop deploy_production: stage: deploy needs: [build] script: - echo "Deploying to production..." - npm install -g vercel - vercel --token $VERCEL_TOKEN --prod environment: name: production url: https://your-app.vercel.app only: - main when: manual deploy_staging: stage: deploy needs: [build] script: - echo "Deploying to staging..." - npm install -g vercel - vercel --token $VERCEL_TOKEN environment: name: staging url: https://staging-your-app.vercel.app only: - develop export default async function cicd_pipeline_generator(input) { console.log("🧠 Runnin