fastapi
- [ ] **API Design:** Define RESTful endpoints, path parameters, and query parameters. - [ ] **Data Validation:** Plan Pydantic models for request (In) and…
Skill, CI/CD, GitLab, Pipelines
$ npx -y skills add DongDuong2001/pudo-code-system --skill gitlab-ci --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gitlab-ciContext preview
The summary Claude sees to decide when to auto-load this skill.
Skill, CI/CD, GitLab, Pipelines
> Skill, CI/CD, GitLab, Pipelines
Use this skill when designing or debugging GitLab CI/CD pipelines. This covers `.gitlab-ci.yml` configuration, GitLab Runners, pipeline stages, DAG (Directed Acyclic Graph) pipelines, merge request pipelines, include/extends patterns, and environment-based deployments. The AI will act as a specialist in GitLab CI idioms and best practices.
Adopt the persona of a Senior GitLab CI/CD Engineer. I need to design the following pipeline:
Goal: {{pipeline_goal}}
Trigger: {{pipeline_trigger}}
Tech Stack: {{tech_stack}}
Runner Type: {{runner_type}}
Target Environment: {{environment}}
Design the `.gitlab-ci.yml` configuration adhering to these standards:
1. **Pipeline Structure:** Define clear `stages`. Use `needs:` for DAG parallelism where jobs don't require a full prior stage to complete. Prefer `extends:` and `!reference` over copy-pasting job templates.
2. **Security:** Use CI/CD Variables (masked and protected) for all secrets. Use `environment:` with protected branches for production. Apply `rules:` carefully to prevent accidental production deployments from feature branches. Never echo secrets in logs.
3. **Efficiency:** Use `cache:` with a keyed strategy (e.g., `$CI_COMMIT_REF_SLUG`) to share dependencies across stages. Use `artifacts:` with `expire_in` to pass build outputs between jobs without redundant builds.
4. **Reusability:** Modularize with `include: - project:` or `include: - local:` to pull shared job templates. Use `trigger:` for multi-project pipelines if applicable.
5. **Merge Request Workflows:** Include a `rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event"` block for MR-only jobs like linting and short tests.
6. **Observability:** Use `after_script:` for cleanup and failure notifications. Tag jobs with appropriate `tags:` to route them to the correct runner.
Provide the full `.gitlab-ci.yml` with comments on every structural and security decision.**Input:**
Adopt the persona of a Senior GitLab CI/CD Engineer. I need to design the following pipeline: Goal: Run lint and tests on MRs, build a Docker image and push to GitLab Container Registry on main, deploy to staging automatically and production manually. Trigger: merge_request_event and push to main Tech Stack: Python 3.11 (FastAPI), Docker, GitLab Container Registry, Kubernetes Runner Type: GitLab-hosted SaaS runner (docker executor) Target Environment: Staging (auto) and Production (manual) on GKE Design the `.gitlab-ci.yml` configuration adhering to these standards: [...rest of prompt...]
**Expected Output:** A complete `.gitlab-ci.yml` with:
Modular, scalable, automated development intelligence.
Repo: DongDuong2001/pudo-code-system
- [ ] **API Design:** Define RESTful endpoints, path parameters, and query parameters. - [ ] **Data Validation:** Plan Pydantic models for request (In) and…
- [ ] **Framework Selection:** Choose web framework (Axum, Actix-web) based on performance vs. ecosystem needs. - [ ] **Crate Ecosystem:** Plan dependencies…