Manage Runners Logo
Manage Runners
Tutorial

Fix Flaky QA Tests with Dedicated, Per-MR Build Servers

3 Min Read
Isolated E2E Testing Environments for Every Merge Request

In the high-stakes world of software delivery, end to end testing is often the most significant bottleneck. QA engineers frequently struggle with "staging pollution," where multiple merge requests (MRs) compete for the same testing database or service, leading to flaky results and false negatives. The solution is the "Ephemeral Environment" provisioning a completely isolated stack for every single MR. This ensures that testing is deterministic, reproducible, and fast.

1. The Bottleneck of Shared QA Environments

Traditional QA relies on a persistent staging server. While simple to set up, it fails at scale. When two developers push different breaking changes to the same environment, identifying the root cause becomes a nightmare. This lack of isolation turns end to end testing into a serial process, slowing down the entire development organization. To move faster, infrastructure must be treated as disposable code.

2. Architecting for Parallel E2E Success

To implement per-MR isolation, your CI/CD pipeline needs to move beyond simple unit tests. You require an orchestration layer that can:

  • Provision on-demand: Create a fresh runner for the specific branch.
  • Encapsulate dependencies: Use Docker-in-Docker (DinD) to spin up the app, database, and cache in a sidecar pattern.
  • Clean up automatically: Ensure resources are destroyed after the MR is merged to prevent cost bloat.

3. Optimizing Your End to End Testing Tools

Selecting the right end to end testing tools (like Playwright, Cypress, or Selenium) is only half the battle. The other half is providing the raw compute power they need to run smoothly. E2E tests are resource-heavy, often requiring significant CPU and RAM to simulate browser environments. Running these on throttled, shared cloud runners leads to timeouts and frustration.

# Example: GitLab CI snippet for isolated E2E
e2e_test:
  stage: test
  image: docker:24.0.5
  services:
    - docker:24.0.5-dind
  script:
    - docker-compose up -d
    - npm run test:e2e
  only:
    - merge_requests

4. Manage Runners: Empowering QA with Instant Infrastructure

Manage Runners was designed to solve the infrastructure side of the E2E equation. We provide an effortless platform to start and manage GitLab runners on Hetzner Cloud, giving QA teams the dedicated power they need for isolated testing.

  • Provisioning in < 3 Minutes: Don't let your QA team wait. Spin up a high-performance runner on Hetzner's low-cost VMs instantly for every MR.
  • 1-Click Scaling & Duplication: Once you find the perfect runner configuration for your end to end testing tools, clone it across your entire fleet with a single click.
  • Static IP for Secure Access: Every runner gets a Static IP address, allowing your E2E tests to securely access internal staging databases or APIs through whitelists.
  • 80% Cost Efficiency: By leveraging Hetzner’s raw compute prices and using our native scheduling to pause runners during off-hours, you can run isolated environments for every MR at a fraction of the cost of managed providers.

Manage Runners handles the DevOps overhead. We ensure your runners are configured, secured with Hetzner Firewalls, and ready to execute, all while maintaining no SSH access to your VMs for total data privacy.

5. Conclusion

Moving to isolated environments for every Merge Request is a transformative step for any QA department. It eliminates flakiness and empowers developers to merge with confidence. By combining the right end to end testing tools with the automated orchestration of Manage Runners, you turn the QA dream into a daily reality.

Ready to end staging pollution forever? [Start your isolated E2E journey with Manage Runners] and scale your testing infrastructure on Hetzner Cloud.