RWX CI/CD Platform

website·Indexed 34 days ago

https://www.rwx.com/docs

A 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.

Tokens
123.4K
Snippets
740
Records
993
Agent score
68%

What's inside RWX

  1. Overview of the RWX CI/CD Platform

    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.
  2. 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.
  3. 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]
  4. 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.
  5. 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 the abq report command. 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]
  6. 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.
  7. 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 the rwx logs command, the RWX CLI must be version 2.3.0 or higher.
  8. 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 is captain <command> [OPTIONS].
    captain <command> [OPTIONS]
  9. 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.
  10. 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, specifically flakes.yml, quarantines.yml, and timings.yml.
  11. Self-hosting ABQ infrastructure requirements

    ABQ binaries are self-contained with no dynamic dependencies. To host an ABQ queue, the environment must provide:

    1. Access to a filesystem.
    2. Ability to bind to at least three network ports.
  12. 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:action keys (e.g., run:create or vault: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.