Welcome! This repository is a hands-on, production-inspired reference for building, testing, and deploying modern applications using clean, modular, and flexible CI/CD pipelines. It demonstrates best practices for DevOps engineers—from automation and security to monitoring and collaboration—across multiple tech stacks and environments.
Status: The repository is in active development, building out reusable patterns, composable GitHub Actions, and real-world workflow examples.
Automating CI/CD Pipelines
Fast, reliable, and repeatable build, test, and deploy for every code change.Infrastructure as Code (IaC)
Versioned, automated, and scalable infrastructure with tools like Terraform, CloudFormation, or Pulumi.System Reliability and Monitoring
Logging, metrics, alerting, and incident response to maximize uptime and performance.Security Best Practices
Secrets management, access controls, and secure-by-default configurations throughout the pipeline.Cross-Team Collaboration
Integrations and workflows to support developers, QA, and IT in shared delivery and operations.
- Provide modular, environment-aware, and production-ready CI/CD workflows
- Support frontend, backend, infrastructure, database, and ML projects
- Use GitHub Actions for automation and orchestration
- Enable multi-environment promotion (dev → uat → staging → prod)
- Model best practices in automation, security, testing, rollback, and notifications
- Serve as a learning, onboarding, and reference resource for DevOps engineers
.github/
├── actions/ # Custom, composable GitHub Actions (delegators + providers)
├── workflows/ # Central, reusable workflow definitions (CI, CD, etc.)
└── templates/ # Optional: workflow templates for various app types
apps/
├── nextjs/ # Nextjs app (frontend apps)
├── golang/ # Go app (backend apps)
├── ollama/ # ML model (AI apps)
Readme.md # You're here!
Reusable Actions & Workflows
Common CI/CD steps abstracted into modular, DRY GitHub Actions and reusable workflows.App Simulations
Eachapps/subdirectory simulates a standalone application (e.g., Next.js, Nuxt.js, Python, Node.js, ML).CI/CD Examples
End-to-end, real-world pipelines for building, testing, and deploying different app types.Documentation
Guides on structure, usage, best practices, extensibility, and examples.
- Checkout code
- Install dependencies
- Lint / static analysis
- Unit & integration tests
- Build application (e.g., Docker image, binary, package)
- Package & publish artifact
- Fetch artifact
- Deploy to environment (dev, staging, prod, etc.)
- Run smoke/sanity tests
- Apply deployment strategy (rolling, blue/green, canary, etc.)
- Monitor deployment (logs, metrics, alerts)
- Notify stakeholders
| Step | Prototype | Dev | Staging | Prod |
|---|---|---|---|---|
| Checkout | ✅ | ✅ | ✅ | ✅ |
| Install | ✅ | ✅ | ✅ | ✅ |
| Lint | 🔁 | ✅ | ✅ | ✅ |
| Unit Tests | 🔁 | ✅ | ✅ | ✅ |
| Build | 🔁 | ✅ | ✅ | ✅ |
| Package | ❌ | 🔁 | ✅ | ✅ |
| Publish Artifact | ❌ | 🔁 | ✅ | ✅ |
| Fetch Artifact | ❌ | 🔁 | ✅ | ✅ |
| Deploy | ❌ | ✅ | ✅ | ✅ |
| Smoke Tests | ❌ | ❌ | ✅ | ✅ |
| Strategy (e.g., canary) | ❌ | ❌ | 🔁 | ✅ |
| Monitor | ❌ | ❌ | 🔁 | ✅ |
| Notify | ❌ | ❌ | 🔁 | ✅ |
✅ = Always 🔁 = Recommended ❌ = Optional/Skip
| Workflow | Trigger | Branch(es) | Notes |
|---|---|---|---|
ci.yml | push, pull_request | dev, feature/*, main | Fast feedback for all changes. |
cd.yml | push | main → staging | Automated deploy after merge. |
cd.yml | push | release/* or tags → prod | Production deploy from locked branch. |
cd.yml | workflow_dispatch | Any | Manual deployments, hotfixes, or UAT. |
| App Type | Pipeline Features |
|---|---|
| Frontend | Build, lint, test, deploy (e.g., React, Next.js, Nuxt.js) |
| Backend | API test, build, deploy (Node, Python, Go) |
| Infra | Terraform validate, plan, apply |
| Database | Migration, backup, rollout pipelines |
| ML | Model package & deploy (e.g., FastAPI, Docker, Kubeflow) |
- development: Fast feedback, automated
- uat: Approval required
- staging: Mirrors production, pre-release
- production: Gated, monitored, with rollback support
We welcome your ideas, improvements, and new patterns!
- Fork & branch
- Open a PR
- Let’s help shape the future of DevOps together
This project is licensed under the MIT License.
👨💻 Author:
Created by Rainer Arencibia and maintained by himself and the DevOps community.