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.