building-cicd-pipelines
SKILL.md
Building CI/CD Pipelines
Overview
Generate CI/CD pipeline configurations for GitHub Actions, GitLab CI, Jenkins, CircleCI, and Azure DevOps. Produce multi-stage workflows covering linting, testing, building container images, security scanning, and deploying to staging/production with proper gating and rollback mechanisms.
Prerequisites
- Git repository hosted on a supported platform (GitHub, GitLab, Bitbucket, Azure DevOps)
- Container runtime (Docker) if building images
- Target deployment environment credentials configured as pipeline secrets
- Test suite that can run headlessly (
npm test,pytest,go test, etc.) - Understanding of branching strategy (trunk-based, GitFlow, or environment branches)
Instructions
- Scan the project for existing CI/CD configuration files (
.github/workflows/,.gitlab-ci.yml,Jenkinsfile,.circleci/config.yml) - Identify the application stack: language, framework, test runner, package manager, and deployment target
- Define pipeline stages:
lint->test->build->security-scan->deploy-staging->integration-test->deploy-production - Generate the pipeline configuration file with appropriate triggers (push to main, PR events, tags)
- Add caching for dependencies (
node_modules,.pip-cache, Go modules) to reduce build times - Configure matrix builds for multiple language versions or OS targets where appropriate
- Add secret references for deployment credentials, container registry tokens, and API keys (never hardcode)
- Implement deployment gates: manual approval for production, automated rollback on health check failure
- Add status badges and notifications (Slack, email) for build results
- Validate the pipeline syntax using platform-specific tools (
actionlint,gitlab-ci-lint)
Output
- Pipeline configuration files (
.github/workflows/*.yml,.gitlab-ci.yml,Jenkinsfile) - Dockerfile for container builds (multi-stage, minimal base image)
- Deployment scripts or Kubernetes manifests referenced by the pipeline
- Environment-specific variable files for staging vs. production
Error Handling
| Error | Cause | Solution |
|---|---|---|
Pipeline triggered but no jobs run |
Trigger conditions (paths, branches) do not match | Review on: / only: / rules: filters and verify branch names |
Docker build failed: layer cache miss |
Cache key changed or cache storage expired | Use content-based cache keys (hashFiles('**/package-lock.json')) and verify cache backend |
Secret not found |
Secret name mismatch or not set in pipeline settings | Check secret names match exactly (case-sensitive) in repository/project settings |
Deploy failed: unauthorized |
Expired or incorrect deployment credentials | Rotate credentials, update pipeline secrets, and verify IAM role/service account permissions |
Tests pass locally but fail in CI |
Environment differences (OS, node version, timezone) | Pin runtime versions in pipeline config; use matrix to test across environments |
Examples
- "Create a GitHub Actions workflow for a Node.js app: lint with ESLint, test with Jest, build Docker image, push to ECR, deploy to EKS staging on PR merge."
- "Generate a GitLab CI pipeline with parallel test jobs, SAST scanning, and manual production deployment gate."
- "Build a Jenkins pipeline that runs Python tests in a Docker agent, publishes coverage to SonarQube, and deploys via Terraform."
Resources
- GitHub Actions: https://docs.github.com/en/actions
- GitLab CI/CD: https://docs.gitlab.com/ee/ci/
- Jenkins Pipeline: https://www.jenkins.io/doc/book/pipeline/
- CI/CD best practices: https://martinfowler.com/articles/continuousIntegration.html
Weekly Installs
29
Repository
jeremylongshore…s-skillsGitHub Stars
1.6K
First Seen
Jan 20, 2026
Security Audits
Installed on
codex27
cursor27
opencode26
gemini-cli26
github-copilot25
amp25