1. Use CI/CD
Date: 2023-09-14
Status
Accepted
Context
We have a need for a CI/CD pipeline to automate the testing and deployment of our services.
History
Previously, we utilized Travis CI for our CI/CD needs. However, due to the discontinuation of their free version, we transitioned to the inferior-mentioned tools to better suit our requirements and budget constraints.
Decision
Tool/Service | Purpose | Documentation Link |
---|---|---|
GitHub Actions | Base checks and dependency updates (via Dependabot) | GitHub Actions Docs |
GitLab CI | Full cycle: Testing and Building | GitLab CI Docs |
ArgoCD | Deployment of services | ArgoCD Docs |
Helm Dashboard | Helm UI manager | Helm Dashboard Docs |
Consequences
We are able to utilize the best of each tool to create a robust CI/CD pipeline.
- GitHub Actions 🚀 - GitHub Actions streamline our base checks and dependency updates, acting as the go-to guru for our code and CI/CD pipeline.
- GitLab CI 🧙♂️ - GitLab CI is our wizard for full-cycle testing and building, keeping our code and CI/CD pipeline in sync. We’ve mirrored our GitHub repository to GitLab, making magic happen.
- ArgoCD 🛠️ - ArgoCD skillfully handles our service deployments, ensuring our code and CI/CD pipeline sing the same tune.
- Helm Dashboard 📊 - The Helm Dashboard, functioning as our Helm UI manager.
Additional Resources
For more detailed documentation on each tool:
| GitLab CI | GitHub CI | ArgoCD | |—————————————-|——————————————|—————————————|