frontier/skills/cicd-pipeline-creation/SKILL.md
Use when creating CI/CD pipelines for any project. Use when asked to "set up CI/CD", "create a pipeline", "automate deployments", "configure Gitea Actions", "set up Vercel/Render/AWS", or similar. Apply regardless of hosting platform, language, or framework.
npx skillsauth add jon23d/skillz cicd-pipeline-creationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A CI/CD pipeline must be complete, verifiable, and safe. Every pipeline must have these elements:
1. Test stage — runs on every push and pull request
2. Deploy stage — runs only after tests pass, on specific branches
3. Verification stage — runs immediately after deploy
4. Rollback strategy — documented or automated
5. Secrets documentation — list every required secret
"I'll just push to Docker and that's the deploy." Pushing an image is not deploying. Deploy means the service is running and accessible. You must have a step that actually deploys to a hosting service.
"I'll add health checks later." Without verification, you don't know if the deploy succeeded. A health check is required immediately after deploy.
"Rollback is complex, I'll skip it." Rollback is required. Either document the manual steps or implement auto-rollback. Production failures happen.
"I'll assume people know what secrets to set."
List every secret explicitly. Example: RENDER_API_KEY, VERCEL_TOKEN, AWS_ACCESS_KEY_ID. Say where to configure them (Gitea repo secrets, environment variables, etc.).
"Staging is optional." For production safety, staging is required. Test on staging first, then promote to production.
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
deploy-staging:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: deploy to staging (Vercel/Render/etc.)
- run: curl -f http://staging.example.com/health
deploy-production:
needs: deploy-staging
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: deploy to production
- run: curl -f https://example.com/health
# On failure: revert to previous deployment (see rollback docs)
At the end of your pipeline file or in a README, list:
Required secrets:
- VERCEL_TOKEN: Vercel API token (configure in Gitea repo secrets)
- RENDER_API_KEY: Render API key (configure in Gitea repo secrets)
- SERVICE_ID: Your service ID from Vercel/Render
Setup:
1. Go to Gitea repo → Settings → Actions → Secrets
2. Add each secret with the correct value
3. Verify in a test deploy
development
Use when adding or modifying environment variable handling in TypeScript projects or monorepos — especially when using process.env directly, missing startup validation, sharing env schemas across packages, or encountering "undefined is not a string" errors at runtime from missing env vars.
testing
Use when creating a new skill, editing an existing skill, writing a SKILL.md, or verifying a skill works before deployment.
development
React UI design principles and conventions. Load when building or modifying any user interface or React components. Covers application type detection, visual standards, component design and structure, Mantine (business apps) and Tailwind (consumer apps), accessibility, responsiveness, state management, data fetching, testing, and in-app help patterns.
development
Use when setting up ESLint and/or Prettier in a TypeScript project, adding linting to an existing TypeScript codebase, or configuring typescript-eslint, eslint-config-prettier, or related packages.