DEV.co
Open-Source Testing · MarathonLabs

marathon

Marathon is an open-source test orchestration platform for Android and iOS that prioritizes fast, stable test execution through intelligent parallelization, flakiness detection, and retry strategies. It can be self-hosted or run against custom device farms, with native Gradle and Xcode integration.

Source: GitHub — github.com/MarathonLabs/marathon
640
GitHub stars
123
Forks
Kotlin
Primary language
GPL-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
RepositoryMarathonLabs/marathon
OwnerMarathonLabs
Primary languageKotlin
LicenseGPL-2.0 — OSI-approved
Stars640
Forks123
Open issues69
Latest release0.10.4 (2025-04-18)
Last updated2026-04-29
Sourcehttps://github.com/MarathonLabs/marathon

What marathon is

Kotlin-based test runner implementing test batching, device pooling, intelligent sharding, duration-aware sorting, and statistical flakiness mitigation. Supports Android (Espresso/Instrumentation) and iOS (XCUITest) natively; extensible via custom vendor implementations. Requires Java 17+.

Quickstart

Get the marathon source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/MarathonLabs/marathon.gitcd marathon# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Mobile CI/CD pipelines needing fast, stable test feedback

Marathon's parallelization and flakiness strategies reduce test execution time while improving reliability. Ideal for teams running frequent builds with hundreds of mobile tests.

On-premise or hybrid device farm testing

Supports local execution and remote device connection (via SSH). Suitable for organizations that cannot use cloud testing services or need full infrastructure control.

Large Android/iOS test suites with known flakiness patterns

Preventive retry logic and post-factum retry quotas help manage unstable tests without prolonging build times. Statistical tracking informs optimal retry behavior.

Implementation considerations

  • Requires Java Runtime Environment 17 or higher; verify CI/CD and local developer environments meet this minimum.
  • YAML configuration (Marathonfile and optional Marathondevices) must be maintained; iOS requires manual simulator UDID or provisioning setup.
  • Device pool and worker setup differs between Android (local gradle) and iOS (SSH to macOS instances); budget time for environment hardening.
  • Statistical flakiness tuning (preventive/post-factum retry strategies) benefits from baseline test data; cold starts may see conservative defaults.
  • GPL-2.0 license: any modifications to the core or linking as a library must be evaluated for open-source compliance and release obligations.

When to avoid it — and what to weigh

  • Commercial closed-source distribution or SaaS embedding required — GPL-2.0 license requires source code disclosure. Proprietary modifications cannot be used without releasing source. Consider Marathon Cloud (paid service) or license review.
  • Non-mobile or non-instrumentation testing focus — Designed specifically for Android (Espresso) and iOS (XCUITest). Custom vendor implementations exist but are not documented in primary materials.
  • Minimal DevOps resources or strong cloud-only preference — Self-hosted Marathon requires managing device infrastructure, Java 17 runtime, and orchestration. Marathon Cloud (commercial offering) offloads this.
  • Projects unable to adopt Kotlin tooling or Java 17+ environments — Kotlin-based codebase; requires Java 17+. Integration complexity increases if existing CI/CD lacks Java support.

License & commercial use

GPL-2.0 (GNU General Public License v2.0). Optional components under separate licenses (libxctest-parser). GPL-2.0 is a copyleft license requiring derivative works and linked software to remain open-source.

GPL-2.0 is a strong copyleft license. Internal or private use of unmodified Marathon is permitted. However, any distribution of modifications, integration into proprietary products, or use in closed-source SaaS requires either: (1) releasing source code under GPL-2.0, or (2) obtaining an alternative license. Marathon Cloud is a separate commercial offering for hosted testing. **License review strongly recommended before embedding or reselling.**

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityHigh
DEV.co fitGood
Assessment confidenceHigh
Security considerations

No security claims or posture data provided. Considerations: (1) CLI tool downloads and executes APK/xctest binaries; verify artifact source integrity. (2) SSH workers for iOS require key management; follow bastion/jump host patterns. (3) Test output may contain sensitive app data; logs and reports should be treated as artifacts. (4) Runs instrumented tests with elevated device access; no explicit mention of sandboxing or isolation.

Alternatives to consider

Firebase Test Lab / Google Cloud Testing

Fully managed cloud service for Android/iOS. No on-premise infrastructure, no open-source licensing concerns, but higher cost and less control over device selection and retry logic.

Bitrise / App Center / Sauce Labs

Commercial CI/CD and mobile testing platforms with similar parallelization and flakiness detection. Proprietary but lower DevOps overhead; licensing not a concern.

Gradle Test Orchestrator (Android) / XCTest native sharding

Native platform tooling for test parallelization. Free and tightly integrated but less sophisticated flakiness management and cross-platform features than Marathon.

Software development agency

Build on marathon with DEV.co software developers

Marathon is ideal for teams needing high-parallelization mobile test runs with flakiness resilience. Verify GPL-2.0 license compliance for your use case; consider Marathon Cloud if self-hosting is not feasible.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

marathon FAQ

Can I use Marathon in a proprietary, closed-source product?
No, not without changes. GPL-2.0 requires any distribution or embedding to release source. Use Marathon Cloud (commercial service) or request a separate license from MarathonLabs.
What devices does Marathon support?
Android: physical devices and emulators via Gradle. iOS: physical devices and simulators via SSH-connected macOS instances. Custom platforms possible via vendor API.
Do I need Marathon Cloud or can I self-host?
Self-hosting is possible (open-source). You manage device infrastructure, Java 17 runtime, and orchestration. Marathon Cloud (paid) is a managed alternative.
How does Marathon handle test flakiness?
Preventive retries for statistically risky tests, intelligent test sorting (long tests first), and post-factum retries with quotas. Strategies are tunable but conservative by default.

Work with a software development agency

From first prototype to production, DEV.co delivers software development services around tools like marathon. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source testing and beyond.

Evaluate Marathon for Your Mobile Testing Pipeline

Marathon is ideal for teams needing high-parallelization mobile test runs with flakiness resilience. Verify GPL-2.0 license compliance for your use case; consider Marathon Cloud if self-hosting is not feasible.