-
Development
: Developers work on code changes locally and push their changes to a GitHub repository.
-
GitHub Actions
: When a code change is pushed to GitHub, a GitHub Action is triggered to run automated tests on the code. This ensures that any issues are caught early and can be fixed before they are deployed.
-
GitHub Webhooks
: Once the code is merged, GitHub webhooks trigger a Jenkins job to build and deploy the code changes to a staging environment.
-
Jenkins
: Jenkins runs a build pipeline to verify the build.
-
Deploy
: Jenkins has another pipeline (deploy-staging) which deploy the code changes to the production environment using Ansible playbooks.
-
Hashicorp Vault
: It can be used to manage secrets that are required by the various tools and processes involved in the pipeline. Ansible fetches these secrets from here.