Files
SpacetimeDB/tools/ci/README.md
Roberto Pommella Alegro 5ac65739e5 add initial cargo ci (#3409)
# Description of Changes

This changes the ci runs to execute `cargo ci` instead of running
commands directly from the github workflow.

The goal here is to unify the commands under `cargo ci` so that it's
easier and more intuitive to run locally

# API and ABI breaking changes

There are no API/ABI changes.

<!-- If this is an API or ABI breaking change, please apply the
corresponding GitHub label. -->

# Expected complexity level and risk

Complexity: 1

It is not a complex change as it is mostly localized to the ci runs and
is easily reversible if something goes wrong. The biggest risk here is
to have future CI runs break, which can be remediated by reverting these
changes.

<!--
How complicated do you think these changes are? Grade on a scale from 1
to 5,
where 1 is a trivial change, and 5 is a deep-reaching and complex
change.

This complexity rating applies not only to the complexity apparent in
the diff,
but also to its interactions with existing and future code.

If you answered more than a 2, explain what is complex about the PR,
and what other components it interacts with in potentially concerning
ways. -->

# Testing

<!-- Describe any testing you've done, and any testing you'd like your
reviewers to do,
so that you're confident that all the changes work as expected! -->

- [x] run `cargo ci` and its subcommands locally
- [x] run the github workflow against this branch to check if the CI
jobs are working properly.

---------

Signed-off-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
Signed-off-by: Roberto Pommella Alegro <robertoaall@gmail.com>
Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com>
2025-12-10 19:18:43 +00:00

3.1 KiB

SpacetimeDB's cargo ci

Overview

This document provides an overview of the cargo ci command-line tool, and documentation for each of its subcommands and options.

cargo ci

SpacetimeDB CI tasks

This tool provides several subcommands for automating CI workflows in SpacetimeDB.

It may be invoked via cargo ci <subcommand>, or simply cargo ci to run all subcommands in sequence. It is mostly designed to be run in CI environments via the github workflows, but can also be run locally

Usage:

Usage: cargo ci [OPTIONS] [COMMAND]

Options:

  • --skip: Skip specified subcommands when running all

When no subcommand is specified, all subcommands are run in sequence. This option allows specifying subcommands to skip when running all. For example, to skip the unreal-tests subcommand, use --skip unreal-tests.

  • --help: Print help (see a summary with '-h')

test

Runs tests

Runs rust tests, codegens csharp sdk and runs csharp tests. This does not include Unreal tests. This expects to run in a clean git state.

Usage:

Usage: test

Options:

  • --help: Print help (see a summary with '-h')

lint

Lints the codebase

Runs rustfmt, clippy, csharpier and generates rust docs to ensure there are no warnings.

Usage:

Usage: lint

Options:

  • --help: Print help (see a summary with '-h')

wasm-bindings

Tests Wasm bindings

Runs tests for the codegen crate and builds a test module with the wasm bindings.

Usage:

Usage: wasm-bindings

Options:

  • --help: Print help (see a summary with '-h')

smoketests

Runs smoketests

Executes the smoketests suite with some default exclusions.

Usage:

Usage: smoketests [ARGS]...

Options:

  • args: Additional arguments to pass to the smoketests runner. These are usually set by the CI environment, such as -- --docker
  • --help: Print help (see a summary with '-h')

update-flow

Tests the update flow

Tests the self-update flow by building the spacetimedb-update binary for the specified target, by default the current target, and performing a self-install into a temporary directory.

Usage:

Usage: update-flow [OPTIONS]

Options:

  • --target: Target triple to build for, by default the current target. Used by github workflows to check the update flow on multiple platforms.
  • --github-token-auth: Whether to enable github token authentication feature when building the update binary. By default this is disabled.
  • --help: Print help (see a summary with '-h')

cli-docs

Usage:

Usage: cli-docs [OPTIONS]

Options:

  • --spacetime-path: specify a custom path to the SpacetimeDB repository root (where the main Cargo.toml is located)
  • --help: Print help (see a summary with '-h')

self-docs

Usage:

Usage: self-docs [OPTIONS]

Options:

  • --check: Only check for changes, do not generate the docs
  • --help: Print help (see a summary with '-h')

help

Usage:

Usage: help [COMMAND]...

Options:

  • subcommand:

This document is auto-generated by running:

cargo ci self-docs