pipeline online

Shipping Axion,
continuously.

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.

3
Platforms tested per change — Linux, Windows, Android
8
Parallel test workers per run
100%
Self-hosted — no third-party build infrastructure
<1
Cold VPN hop to any pipeline node (WireGuard mesh)

How it works

From push to verified build

01 — Push

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.

02 — Diff-aware selection

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.

03 — Parallel execution

Each discovered test file runs in its own isolated subprocess across 8 parallel workers, with automatic retries and a live dashboard.

04 — Multi-platform builds

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.

05 — Results persisted

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

Built the same way we build for clients

WireGuard mesh

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.

Real Android builds

KVM-accelerated emulators, not software fallback — Android 15 (API 35) boots in seconds for headless instrumented test runs.

Self-hosted, end to end

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.