Real World Example

Pipeline Gates at a Fintech

Payment companies (Razorpay, Paytm, PhonePe) do not let a release reach production unless automated checks pass. UI tests are one gate in the pipeline: smoke on every pull request, full regression on the staging deploy, and a tiny production sanity check after release.

Pull request ──> build + unit tests ──> UI smoke (8 tests, 2 min) ──> merge allowed
      main ──> deploy to staging ──> UI regression on Grid (220 tests, 15 min) ──> release approval
   release ──> deploy to prod ──> prod sanity (login, search, read-only order history) ──> done
   nightly ──> full cross-browser regression ──> Allure report + Slack summary

The Stage in GitHub Actions

Example

.github/workflows/release.yml

regression:
    needs: deploy-staging
    runs-on: ubuntu-latest
    services:
      selenium:
        image: selenium/standalone-chrome:4.25.0
        ports: ["4444:4444"]
        options: --shm-size=2g
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-java@v4
        with: { distribution: temurin, java-version: "21", cache: maven }
      - run: mvn -B test -DsuiteXml=testng-regression.xml -Denv=staging -DrunMode=remote -DgridUrl=http://localhost:4444

Example output

regression
  Starting service container selenium (selenium/standalone-chrome:4.25.0)
  Run mvn -B test -DsuiteXml=testng-regression.xml -Denv=staging -DrunMode=remote ...
  [INFO] Tests run: 220, Failures: 0, Errors: 0, Skipped: 2, Time elapsed: 14:52 min
  [INFO] BUILD SUCCESS
release-approval: waiting for review from @qa-leads