This skill should be used when users need to generate Azure DevOps CI/CD pipelines with Dockerfiles for full-stack applications. Use when creating Azure pipelines, generating Dockerfiles for frontend/backend, setting up CI/CD with ACR and AKS, or deploying to Kubernetes using Helm.
Generate production-ready Azure DevOps YAML pipelines with multi-stage builds, Docker containerization, and Helm deployments to AKS.
Gather context to ensure successful implementation:
| Source | Gather |
|---|---|
| Codebase | Project structure, frameworks used, existing Dockerfiles, existing pipelines |
| Conversation | Target environments, naming conventions, specific requirements |
| Skill References | Dockerfile patterns from references/, pipeline best practices |
| User Guidelines | Team naming conventions, security requirements |
Ask about USER'S context before generating:
Ask only if relevant to the user's context:
| Resource | URL | Use For |
|---|---|---|
| Azure Pipelines YAML | https://learn.microsoft.com/en-us/azure/devops/pipelines/yaml-schema | Pipeline syntax reference |
| Docker Task | https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/docker-v2 | Docker build/push tasks |
| HelmDeploy Task | https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/helm-deploy-v0 | Helm deployment configuration |
| AKS Deployment | https://learn.microsoft.com/en-us/azure/aks/devops-pipeline | AKS CI/CD best practices |
1. Scan root directory structure
2. Identify frontend project (look for package.json with React/Vue/Angular, or next.config.js)
3. Identify backend project (look for requirements.txt, package.json with server deps, *.csproj, pom.xml)
4. Check for existing Dockerfiles
5. Check for existing azure-pipelines.yml
6. Identify build commands from package.json scripts or other config
For each identified project component:
1. Determine runtime (Node.js, Python, .NET, Java)
2. Select appropriate base images (prefer Alpine/slim variants)
3. Generate multi-stage Dockerfile:
- Stage 1: Build environment with dev dependencies
- Stage 2: Production runtime with minimal footprint
4. Apply security best practices (non-root user, minimal layers)
See references/dockerfile-patterns.md for framework-specific patterns.
1. Create azure-pipelines.yml at repo root
2. Configure trigger (main/master branch)
3. Add Build stage:
- Docker build for frontend
- Docker build for backend
- Push images to ACR with build ID tag
4. Add Deploy stage(s):
- Helm upgrade/install for each environment
- Proper dependencies between stages
- Manual approvals for production
See references/pipeline-patterns.md for stage configurations.
1. Generate Helm chart structure if not present
2. Configure values.yaml for each environment
3. Set up image pull from ACR
4. Configure service and ingress
See references/helm-deployment.md for Helm patterns.
| Pattern | Framework |
|---|---|
package.json with react | React |
package.json with vue | Vue.js |
package.json with @angular/core | Angular |
next.config.js or next.config.mjs | Next.js |
nuxt.config.ts | Nuxt.js |
| Pattern | Framework |
|---|---|
package.json with express/fastify/nest | Node.js |
requirements.txt or pyproject.toml | Python |
*.csproj with Microsoft.NET | .NET |
pom.xml or build.gradle | Java |
go.mod | Go |
| File | Purpose |
|---|---|
frontend/Dockerfile | Multi-stage build for frontend |
backend/Dockerfile | Multi-stage build for backend |
azure-pipelines.yml | CI/CD pipeline definition |
helm/Chart.yaml | Helm chart metadata (if generating) |
helm/values.yaml | Default Helm values |
helm/values-{env}.yaml | Environment-specific values |