ci-cd-patterns
CI/CD pipeline patterns for GitHub Actions, PR automation, and deployment workflows. Use when setting up CI, fixing broken pipelines, automating PR checks, or configuring deployment.
Works with
---
name: ci-cd-patterns
description: CI/CD pipeline patterns for GitHub Actions, PR automation, and deployment workflows. Use when setting up CI, fixing broken pipelines, automating PR checks, or configuring deployment.
license: MIT
---
# CI/CD Patterns
Patterns for GitHub Actions, PR automation, and deployment workflows.
## When to Use
- Setting up or fixing GitHub Actions workflows
- Automating PR checks (lint, test, build)
- Configuring deployment pipelines
- Monitoring PR status and retrying flaky CI
- Setting up multi-environment deployment (dev, staging, prod)
## GitHub Actions --- Common Patterns
### Basic CI Workflow
```yaml
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run tests
run: ./gradlew test
```
### PR Check Workflow
```yaml
name: PR Check
on: pull_request
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./gradlew ktlintCheck
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: ./gradlew test
build:
runs-on: ubuntu-latest
needs: [lint, test]
steps:
- uses: actions/checkout@v4
- run: ./gradlew build
```
## PR Babysitting Pattern
Monitor a PR through CI, handle common failures:
1. **Check CI status** --- `gh pr checks <number>`
2. **Identify failure type** --- flaky test, lint error, build failure
3. **Fix and push** --- for lint/build errors, fix locally and push
4. **Retry flaky tests** --- re-run the workflow: `gh run rerun <run-id> --failed`
5. **Resolve merge conflicts** --- rebase onto target branch
6. **Enable auto-merge** --- `gh pr merge <number> --auto --squash`
> See `workflows.md` for ready-to-use GitHub Actions YAML templates.
## Deployment Checklist
Before deploying:
- [ ] All CI checks pass
- [ ] No merge conflicts
- [ ] Database migrations reviewed (if any)
- [ ] Environment variables set in target environment
- [ ] Rollback plan identified
## Gotchas
- **Caching saves minutes per run.** Always cache dependencies (`actions/cache` or `actions/setup-java` with cache). A cold Gradle build takes 3-5 minutes, cached takes 30 seconds.
- **`needs:` creates sequential dependencies.** Without it, all jobs run in parallel. Use `needs: [lint, test]` to make build wait for checks.
- **Secret names are case-sensitive.** `secrets.DB_PASSWORD` and `secrets.db_password` are different. Match the exact name from Settings > Secrets.
- **Don't use `actions/checkout@v3` --- use `v4`.** v3 uses Node 16 which is deprecated. v4 uses Node 20.
- **Flaky tests need investigation, not just retry.** If you re-run a workflow more than twice for the same test, fix the test. Common causes: race conditions, time-dependent assertions, shared test state.
- **Force-pushing during CI review resets the check suite.** Wait for CI to finish before force-pushing, or you'll waste runner minutes.
## Rules
- Every PR must pass CI before merge
- Don't skip CI checks (`[skip ci]`) unless it's docs-only
- Keep workflows under 10 minutes total
- Use matrix builds for multi-version testing
- Store secrets in GitHub Secrets, never in codeMore Deployment & CI/CD skills
azure-enterprise-infra-planner
microsoft/azure-skills
Architect and provision enterprise Azure infrastructure from workload descriptions. For cloud architects and platform engineers planning networking, identity, security, compliance, and multi-resource topologies with WAF alignment. Generates Bicep or Terraform directly (no azd). WHEN: 'plan Azure infrastructure', 'architect Azure landing zone', 'design hub-spoke network', 'plan multi-region DR topology', 'set up VNets firewalls and private endpoints', 'subscription-scope Bicep deployment', 'Azure Backup for VM workloads'. PREFER azure-prepare FOR app-centric workflows.
azure-kubernetes-app-deploy
microsoft/azure-skills
Use when deploying an existing web application or API to an already-running Azure Kubernetes Service cluster. Detects the framework, generates a Dockerfile and Kubernetes manifests, validates against AKS Deployment Safeguards, and deploys with verification. WHEN: deploy app to AKS, deploy to existing AKS cluster, containerize app for Kubernetes, generate K8s manifests for Azure, set up CI/CD for AKS, my AKS deployment is failing safeguard checks, I have a Django/Express/Spring Boot app to run on AKS. DO NOT USE FOR: creating or provisioning an AKS cluster (use azure-kubernetes), assessing migration to AKS Automatic (use azure-kubernetes-automatic-readiness), or deploying to non-AKS targets like Web Apps, Container Apps, or Functions.
finetuning
microsoft/azure-skills
Fine-tune models on Microsoft Foundry using SFT (supervised), DPO (preference), or RFT (reinforcement with graders). Covers dataset preparation, training job submission, deployment, and evaluation. USE FOR: fine-tune, SFT, DPO, RFT, training data, grader, distillation, fine-tuned model, training job, large file upload, calibrate grader, deploy fine-tuned model, evaluate fine-tuned model. DO NOT USE FOR: general model deployment without fine-tuning (use deploy-model), agent creation (use agents), prompt optimization without training (use prompt-optimizer).

