16 CI/CD in the cloud with Docker and GitHub Actions

 

The Continuous Integration/Continuous Deployment (CI/CD) pipeline is the heart of modern software projects. Developers push changes to source code and trigger a pipeline run which builds, tests, packages and deploys the entire application. Automatic deployment to production might be a bit much for some organizations, but you can continuously deploy to a pre-production environment and be confident you always have your latest features ready to go. The pipeline is crucial to the project's success, so it needs to run quickly and be repeatable and portable. That gives the development team fast feedback and lets you easily debug issues with the pipeline, and it means you can move between CI/CD services with the minimum amount of rework. Docker is a great fit for powering your pipeline—you can compile code and run unit tests in multi-stage builds; spin up a local deployment of the app using Docker Compose to test it; and publish tested images to a release repository for production deployment.

16.1 DevOps in the cloud with GitHub Actions

16.2 Pushing images to GitHub Container Registry

16.3 End-to-end tests with Docker Compose

16.4 Deploying to Kubernetes

16.5 Structuring a portable build process

16.6 Lab