Containerizing Tests In Your CI/CD Pipeline
Managing your continuous integration server is an essential part of practicing DevOps, but it's easy to let it run away from you. Domain-specific languages, plugins, and configurations can result in servers so heavily customized that the test environment ceases to be replicable, and you become locked into your specific choice of CI server. Your CI server might not support the tool you're trying to use. Containerization is a simple way to push back against creeping complexity in your CI server. With containers, you can define configuration as code alongside your test, produce modular, reusable test artifacts, and are not limited to tools that your CI server supports. In this presentation, we’ll take a look at cases when you might want to use containers to package your tests, as well as when not to. We’ll also look at a few simple examples of containerized tests in a Jenkins pipeline using Docker and a sample app, and discuss the benefits of doing so. This presentation targets developers and DevOps engineers building CI/CD pipelines or creating automated tests.