RWX CI/CD Platform
website·Indexed 34 days ago
https://www.rwx.com/docsA modern CI/CD platform designed for AI-assisted development and high-velocity teams. It includes ABQ, a universal test runner for parallelizing test suites across local environments and CI platforms like GitHub Actions, with native integrations for Jest, pytest, and RSpec.
What's inside RWX
- RWX is a modern CI/CD platform designed for high-velocity teams and AI-assisted development. It replaces traditional sequential CI systems with a DAG-based execution model where tasks are expressed as dependencies rather than linear pipelines, allowing for true parallelization and fine-grained retries. Key features include content-based caching (rebuilding only affected code), right-sized compute (up to 64 cores with per-second billing), and the ability to iterate on code and pipeline definitions without needing to commit or push to a repository.
Overview of RWX event trigger types
RWX supports various trigger types to initiate runs based on external events or manual actions:
- CLI Triggers: Run workflows from the command line.
- GitHub Triggers: Trigger on push and pull request events.
- GitLab Triggers: Trigger on push, merge request, and tag events.
- Forgejo Triggers: Trigger on push and pull request events.
- Cursor Origin Triggers: Trigger on push and pull request events.
- Dispatch Triggers: Register a run definition by a key to start via UI, API, or CLI.
- Cache Rebuild Triggers: Trigger runs when caches are rebuilt.
- Webhook Triggers: Trigger runs from external webhooks.
Overview of ABQ CLI commands
ABQ is a universal test runner that executes test suites in parallel. The CLI follows the general usage pattern:
abq <command> [OPTIONS].Available commands include:
test: Starts one or more workers for an ABQ test suite run.report: Outputs all test results for a distributed ABQ test suite run.start: Starts a queue server for running distributed test suite runs.health: Checks the health of ABQ servers.token: Manages tokens for interacting with ABQ server instances.login: Stores an RWX access token for local usage.help: Prints information about using the ABQ CLI.
abq <command> [OPTIONS]Overview of ABQ universal test runner
ABQ is a universal test runner implemented in Rust that enables parallel execution of test suites both locally and in CI environments. It is designed to split test suites into parallel jobs without requiring custom configuration. ABQ acts as a wrapper that invokes existing test commands, ensuring compatibility with the native test framework's CLI and arguments. Currently, bindings are available for RSpec, Jest, and pytest.Overview of ABQ test suite parallelization
ABQ is a universal test runner designed for test suite parallelization across local and CI environments. It provides a uniform interface for multiple test frameworks and features dynamic, just-in-time test distribution to ensure nodes finish simultaneously regardless of runtime variability. Key capabilities include zero-config integration, automated and manual retries, and centralized result aggregation via theabq reportcommand. The tool is distributed as a single binary with minimal CPU and memory overhead.# Basic integration pattern: prepend 'abq test --' to your existing test command abq test -- [your-test-command]Overview of Captain CLI features
Captain is an open-source CLI tool used to keep builds green by providing the following core capabilities:
- Flaky Test Management: Detects, automatically retries, and quarantines flaky tests.
- Test Parallelization: Partitions test files to enable parallel execution across multiple jobs.
- Debugging: Provides tools to understand and debug test failures.
Additionally, Captain offers a paid Cloud mode which adds:
- Automatic re-balancing of parallelized test suites based on performance data.
- Cloud UI for quarantining tests without modifying code.
- Analytics on problematic flaky tests and 90-day performance trend tracking.
- Aggregated and summarized results for all partitions of a parallelized run.
Overview of RWX Model Context Protocol (MCP) server
RWX provides an MCP server that allows AI coding assistants to debug failed tests by treating test results as semantic output. This eliminates the need to manually scroll through logs. To use the MCP server, the RWX CLI must be installed. If the assistant suggests using therwx logscommand, the RWX CLI must be version 2.3.0 or higher.Overview of Captain CLI commands
Captain CLI is a test and build analytics and performance tool. While primarily configured via a YAML configuration file, runtime options can be provided via command line flags or environment variables. The general usage pattern iscaptain <command> [OPTIONS].captain <command> [OPTIONS]Overview of RWX skills for AI agents
The RWX skill allows coding agents to find relevant documentation, lint run definition files, and validate changes using real RWX runs via agentic run loops. To use these skills, the RWX CLI must be installed and authenticated on the system.Choose between Captain CLI Cloud and OSS modes
The Captain CLI operates in two primary modes: Cloud mode and OSS mode.
- Cloud Mode: Uses the Captain Cloud Dashboard to automatically detect flaky tests, manage quarantines, and track historical test runtimes without requiring manual PR updates.
- OSS Mode: Requires manual maintenance of configuration files located in the
.captain/your-suite/directory, specificallyflakes.yml,quarantines.yml, andtimings.yml.
Self-hosting ABQ infrastructure requirements
ABQ binaries are self-contained with no dynamic dependencies. To host an ABQ queue, the environment must provide:
- Access to a filesystem.
- Ability to bind to at least three network ports.
Understand RWX permission keys and identity mapping
RWX uses a permission system to control actions across the web app, API, and CLI. Permissions are defined by
resource:actionkeys (e.g.,run:createorvault:unlock).Permissions are assigned to identities as follows:
- Organization Members: Inherit permissions via the groups they belong to.
- Service Accounts: Hold a specific set of permissions, which are inherited by their associated access tokens.
- Personal Access Tokens: Hold a subset of permissions derived from the permissions held by the user who created the token.