Our CI workflows make heavy usage of Reusable Workflows. These reusable workflows can then be tested manually via the manual_dispatch.yml
workflow.
Or integrated into CI jobs such has on_pull_request.yml
or on_main.yml
.
By convention:
- All reusable workflows start with the
reusable_
prefix. - All workflows that are triggered via
workflow_dispatch
start with themanual_
prefix. - All workflows that are triggered via an event start with the
on_
prefix.on_pull_request
is triggered on pull requests.on_main
is triggered on pushes to the main branch.
- reusable_checks.yml - These are all the checks that run to ensure the code is formatted,
linted, and tested. This job produces no artifacts other than a pass/fail criteria for the build.
SAVE_CACHE
- If true, the rust cache will be saved. Generally we only do this for builds onmain
- reusable_bench.yml - This job runs the benchmarks to check for performance regressions.
SAVE_BENCH
- If true, then the benchmark results are saved to update https://ref.rerun.io/dev/bench/
- reusable_deploy_docs - This job deploys the python and rust documentation to https://ref.rerun.io
PY_DOCS_VERSION_NAME
- The name to use for versioning the python docs. This should generally match the version inCargo.toml
.UPDATE_LATEST
- If true, then the docs will be deployed tolatest/
as well as the versioned directory.
- reusable_build_and_test_wheels.yml - This job builds the wheels, runs the
end-to-end test, and produces a sample RRD. The artifacts are accessible via GitHub artifacts, but not otherwise
uploaded anywhere.
MATURIN_FEATURE_FLAGS
- The feature flags to pass to maturin.PLATFORM
- Which platform to build for:linux
,macos-arm
,macos-intel
, orwindows
.RELEASE_VERSION
- If producing a release, the version number. This must match the version inCargo.toml
.RRD_ARTIFACT_NAME
- Intermediate name of the GitHub rrd artifact for passing toreusable_upload_wheels.yml
SAVE_CACHE
- If true, the rust cache will be saved. Generally we only do this for builds onmain
WHEEL_ARTIFACT_NAME
- Intermediate name of the GitHub wheel artifact for passing toreusable_upload_wheels.yml
- reusable_upload_wheels.yml - This job uploads the wheels to google cloud
RRD_ARTIFACT_NAME
- Intermediate name of the GitHub rrd artifact. This should match the name passed toreusable_build_and_test_wheels.yml
WHEEL_ARTIFACT_NAME
- Intermediate name of the GitHub wheel artifact. This should match the name passed toreusable_build_and_test_wheels.yml
- reusable_build_web.yml - This job builds the wasm artifacts for the web.
RELEASE_VERSION
- If producing a release, the version number. This must match the version inCargo.toml
.
- reusable_upload_web.yml - This job uploads the web assets to google cloud. By default this
only uploads to:
app.rerun.io/commit/<commit>/
MARK_PRERELEASE_FOR_MAINLINE
- If true, then the web assets will go to `app.rerun.io/preleease/MARK_TAGGED_VERSION
- If true, then the web assets will go toapp.rerun.io/version/<RELEASE_VERSION>
RELEASE_VERSION
- If producing a release, the version number.RRD_ARTIFACT_NAME
- Intermediate name of the GitHub rrd artifact. This should match the name passed toreusable_build_and_test_wheels.yml
UPLOAD_COMMIT_OVERRIDE
- If set, will replace the value of<commit>
. This is necessary because we want pull request builds associated with their originating commit, even if the web-build happens on an ephemeral merge-commit.
- reusable_pr_summary.yml - This job updates the PR summary with the results of the CI run.
- This summary can be found at:
https://storage.googleapis.com/rerun-builds/pull_request/<PR_NUMBER>/index.html
PR_NUMBER
- The PR number to update. This will generally be set by theon_pull_request.yml
workflow using:${{github.event.pull_request.number}}
- This summary can be found at:
- manual_dispatch - This workflow is used to manually trigger the assorted reusable workflows for
testing.
- See the workflow file for the list of parameters.
- manual_build_wheels_for_pr.yml - This workflow can be dispatched on a branch and will build all of the wheels for the associated pull-request. Uses: