Enterprise Hybrid Automation Framework & CI/CD Migration
Led the redesign of the test automation setup, moving it from a patchwork of UI and API scripts to a proper OOP-based framework, and separately ran the migration of the CI/CD pipeline from Jenkins to GitLab CI.
Jenkins → GitLab CI
Full pipeline migration
Auto
TestRail result sync
Parallel
Containerised runners
The challenge
When I started on this, the test suite had a lot of problems typical of something that grew organically without much oversight: duplicated code everywhere, UI and API scripts that broke if you looked at them wrong, and parameterisation that was more or less hardcoded per test. Reporting was disconnected from everything else, too — someone had to manually go in and map results into the test management tool after every run. The Jenkins pipelines weren't much better; they were all written in Groovy and had turned into something people were afraid to touch, which slowed down every release.
What I built
OOP framework architecture
Rebuilt the framework around a Page Object Model for the UI side and dedicated client wrappers for the API side, cutting down duplication significantly and making it easier for other engineers to pick up and extend.
Advanced parameterisation
Built out proper data-driven parameterisation so the same test logic could run across different environments and configs without copy-pasting test cases.
Deep TMS integration
Wired up native integration with TestRail so results synced automatically and stayed traceable back to the original test runs — no more manual mapping.
CI/CD modernisation
Stabilised and extended the existing Groovy Jenkins pipelines first, then planned and executed the full migration to GitLab CI, including containerised runners and parallel execution, cutting pipeline run times noticeably.
Pipeline
Automation package
Parallel project branches
Project 1
- Merge code
- Docker image build
Project 2
- Merge code
- Docker image build
Project N
- Merge code
- Docker image build
Test execution
GitLab CI
Allure report
TestRail export
Automation package fans out per project, converges on GitLab CI execution, reports to Allure and TestRail.
