The design of CI pipelines is tightly coupled with the tooling and technology stacks they test. In an ideal world, pipelines would run on rock solid infrastructure and execute fully deterministic tests, resulting in the release of a product with a guaranteed quality bar.
In reality, infrastructure, tools and tests can all be flaky, not only slowing down pipelines with needless failed executions, but also reducing confidence in the final product. Integration tests are notorious for being the flakiest of tests, primarily due to dependencies on live or mocked external services, and the use of Selenium WebDriver for UI testing.
However, with the correct tooling, infrastructure and testing libraries, sources of flakiness can be eliminated completely. In this talk, I will detail a comprehensive web frontend CI pipeline built on solid infrastructure and hardened against external dependencies. Most significantly, I will demonstrate that a modern CI pipeline can eliminate the need for WebDriver completely, while still guaranteeing the same level of quality and confidence we expect from UI testing.