Historically, the process for making software available for testing was relatively slow and cumbersome. Code would be compiled and built (often as infrequently as weekly or longer). If we were lucky and had a good programming team, unit tests would be written and run. An environment for the code to live on would need to be provisioned (this too could take days if there were hiccups) and then we could start our End-to-End tests.
With the advent of distributed version control like Git and processes like Continuous Integration and Continuous Delivery, what used to take days, if not weeks, can now be done in the span of time it takes to go grab a coffee.
There are a number of different tools for automating CI/CD processes. Most importantly are the CI tools that allow development teams to build and integrate software with a rapid turn-around time.
Even with a cursory bit of research, it becomes clear that you can’t achieve true CI/CD without automated testing. Testing is the cornerstone of CI/CD - from Unit Tests to automated acceptance tests to end-to-end testing. As your testing grows, you'll probably want to Leverage CI/CD for Complex Tests as well.
As QA and development teams work together to build reliable and scalable test automation, it is also crucial that these teams’ systems for testing are fully integrated into their CI server. This article provides an overview of the most popular CI servers in the market and how they integrate with the Sauce Labs Continuous Testing Cloud.
Jenkins is the most popular CI tool on the market today. It is a free and open-source tool with a strong community following and broad adoption across companies of all sizes. To help you easily integrate your test execution into your Jenkins pipeline, Sauce Labs developed the Sauce Jenkins Plugin. While it isn’t necessary to integrate the two systems via this plugin as you could build it on your own, there are several helpful tools integrated into this plugin:
It provides a user interface that lets you populate environment variables on the Jenkins server that can be used in your tests (for example, platform configurations or your Sauce username and access key).
The plugin does the setting of environment variables. It automatically launches Sauce Connect when you enable it for a project.
It handles reporting between Jenkins and Sauce.
Bamboo helps your team with continuous integration, deployment and delivery by providing tools that tie your automated builds, tests and releases together in a single workflow. Using the Sauce Labs plugin for Bamboo, you can easily configure projects to run tests on Sauce’s Continuous Testing Cloud, manage environment variables, enable Sauce Connect Proxy, and provide test result files. All of this can be done directly from Bamboo, making your workflows simpler and allowing you to focus on releasing better quality software faster.
TeamCity is a general-purpose CI/CD solution that focuses on build management and Continuous Integration. TeamCity has great .NET support and supports a number of different Version Control Systems, so if you are using something other than Git, TeamCity has you covered. The overall functionality is easy to understand and the out-of-the-box setup is reasonably straightforward.
Travis CI is a hosted distributed Continuous Integration system. It has a simplified configuration through the use of a YAML file (so no installation is needed). This makes for much greater ease of setup and configuration. Additionally, Travis CI’s integration with GitHub is excellent.
CircleCI is a Continuous Integration solution that is gaining in popularity. With both hosted and on-premises options, this tool provides a fair amount of flexibility as well. It has a simple elegant UI and offers an excellent debugging feature. While extremely robust for Linux and mobile environments, support for Windows has historically been secondary.
Finally, there is Azure DevOps for CI/CD. While not specifically a CI solution, Azure DevOps is certainly capable of handling CI/CD tasks. This is Microsoft's foray into building an all-in-one solution for development, deployment and release activities. These tools certainly make sense if you are a "Microsoft Shop," and Azure DevOps makes a solid effort at covering all of the bases.
Details on how to get started with any of these plugins can be found on the Sauce Labs Integrations page, as well as in our docs, Incorporating Sauce Labs in Your CI Pipeline.
Once you have decided on the right CI server for your team, this Tech Talk: How to Integrate Sauce Labs into your CI CD Pipeline will help guide you through the integration process.