Every change to Axion — TechnoCore's automation platform — runs through a self-hosted CI/CD pipeline that tests, builds, and validates across Linux, Windows, and Android before it ships. This is how we keep a factory-module platform this large moving fast without breaking things.
How it works
A push or PR against Axion's Bitbucket repo triggers both Bitbucket's own cloud lint pipeline and a webhook to our self-hosted runner.
The pipeline runner inspects the git diff and scopes the test run to the factories actually touched — core infra changes still run everything; a scoped change runs only what could break.
Each discovered test file runs in its own isolated subprocess across 8 parallel workers, with automatic retries and a live dashboard.
Linux services, Windows services (via NSSM), and Android builds (KVM-accelerated emulator, API 35) are all exercised on real, purpose-built infrastructure — not emulated cloud runners.
Every run's outcome is written back to the pipeline database, so pass/fail trends and flaky tests are visible over time, not just per-run.
Infrastructure
Every pipeline node — physical workstations, Linux and Windows test VMs, and this server — sits on the same encrypted mesh. On-LAN or off, access is identical.
KVM-accelerated emulators, not software fallback — Android 15 (API 35) boots in seconds for headless instrumented test runs.
Bitbucket's cloud handles lint on every push; everything that needs real infrastructure — database access, browser E2E, platform-specific builds — runs on hardware we control.