Prefix explorer CI with explorer-

Desktop's GitHub workflows are already prefixed `desktop-`. With both
projects in one repo, the prefix shows which project a workflow or
Buildkite step belongs to.
This commit is contained in:
Rūdolfs Ošiņš
2026-10-13 17:23:20 +02:00
parent d83ed92a84
commit c516cfa9fa
15 changed files with 66 additions and 63 deletions
@@ -2,19 +2,20 @@
# parallel with fixture creation, and asserts the pinned rad and radicle-httpd
# versions are on PATH.
#
# This step shares the `deps` volume with the steps in node-checks.yml. Keep the
# cache paths the same as the ones there, and see that file for how the volume
# works and why this step waits for check.
# This step shares the `deps` volume with the steps in explorer-node-checks.yml.
# Keep the cache paths the same as the ones there, and see that file for how the
# volume works and why this step waits for explorer-check.
env:
CI: "true"
NPM_CONFIG_CACHE: ".npm-cache"
steps:
- label: "🎭 e2e"
key: e2e
# The check step in node-checks.yml seeds the shared volume.
depends_on: check
- label: "🎭 explorer e2e"
key: explorer-e2e
# The explorer-check step in explorer-node-checks.yml seeds the shared
# volume.
depends_on: explorer-check
timeout_in_minutes: 30
cache:
name: deps
@@ -1,7 +1,7 @@
# One `deps` cache volume serves every step here and the e2e step in e2e.yml.
# The volume is mounted at /cache/bkcache on the agent, and the configured paths
# become links into it. A container step must therefore mount that directory, or
# every link dangles and the job persists nothing.
# One `deps` cache volume serves every step here and the e2e step in
# explorer-e2e.yml. The volume is mounted at /cache/bkcache on the agent, and the
# configured paths become links into it. A container step must therefore mount
# that directory, or every link dangles and the job persists nothing.
#
# A job does not write the volume in place. It gets a private copy at start, and
# that copy becomes the version the next job sees if the job exits 0. Concurrent
@@ -49,7 +49,7 @@ __defs:
- NPM_CONFIG_CACHE
# Keep this list the same in every step that attaches the volume, here and in
# e2e.yml.
# explorer-e2e.yml.
deps_cache: &deps_cache
name: deps
paths:
@@ -61,8 +61,8 @@ __defs:
- ".lintcache"
steps:
- label: "🔎 check"
key: check
- label: "🔎 explorer check"
key: explorer-check
timeout_in_minutes: 10
cache: *deps_cache
plugins:
@@ -75,9 +75,9 @@ steps:
- ./scripts/install-binaries
- npm run check
- label: "🧪 unit-tests"
key: unit-tests
depends_on: check
- label: "🧪 explorer unit-tests"
key: explorer-unit-tests
depends_on: explorer-check
timeout_in_minutes: 10
cache: *deps_cache
plugins:
@@ -88,9 +88,9 @@ steps:
# The http-client suite talks to a real radicle-httpd, so it needs the pinned
# binaries on PATH even though it runs under vitest rather than Playwright.
- label: "🔌 http-client-tests"
key: http-client-tests
depends_on: check
- label: "🔌 explorer http-client-tests"
key: explorer-http-client-tests
depends_on: explorer-check
timeout_in_minutes: 15
cache: *deps_cache
artifact_paths:
@@ -105,9 +105,9 @@ steps:
# playwright.buildSmoke.config.ts sets globalSetup to undefined, so this step
# needs a browser but no Radicle binaries or fixtures.
- label: "🏗 build-smoke"
key: build-smoke
depends_on: check
- label: "🏗 explorer build-smoke"
key: explorer-build-smoke
depends_on: explorer-check
timeout_in_minutes: 30
cache: *deps_cache
artifact_paths:
@@ -42,8 +42,8 @@ __defs:
steps:
# RUSTFLAGS is set on the build only, not on the test run.
- label: "🦀 test"
key: test
- label: "🦀 explorer test"
key: explorer-rust-test
timeout_in_minutes: 30
cache:
name: rust-test
@@ -54,8 +54,8 @@ steps:
- cargo test --workspace --all-features
- cargo test -p radicle-httpd
- label: "🦀 lint"
key: lint
- label: "🦀 explorer lint"
key: explorer-rust-lint
timeout_in_minutes: 30
cache:
name: rust-lint
@@ -10,7 +10,7 @@
# branch step had to fail on purpose to keep its copy out, and it left the volume
# at its empty first version until a master job went green. Artifacts have
# neither problem, and they free the one cache volume a step can attach for the
# shared `deps` volume from node-checks.yml.
# shared `deps` volume from explorer-node-checks.yml.
#
# A job knows its own build id and no other, so the branch step asks the REST API
# for the newest passed master build. No credential a job already holds can do
@@ -28,13 +28,15 @@ env:
NPM_CONFIG_CACHE: ".npm-cache"
steps:
- label: "📸 visual update snapshots"
key: visual-update-snapshots
- label: "📸 explorer visual update snapshots"
key: explorer-visual-update-snapshots
branches: "master"
# The check step in node-checks.yml seeds the shared volume.
depends_on: check
# The explorer-check step in explorer-node-checks.yml seeds the shared
# volume.
depends_on: explorer-check
timeout_in_minutes: 30
# Keep these paths the same as the ones in node-checks.yml and e2e.yml.
# Keep these paths the same as the ones in explorer-node-checks.yml and
# explorer-e2e.yml.
cache: &deps_cache
name: deps
paths:
@@ -81,10 +83,10 @@ steps:
# cannot keep the build out of the passed state that publishes the set.
- npm run test:e2e -- --project visual-desktop visual-mobile --update-snapshots --retries=2
- label: "📸 visual"
key: visual
- label: "📸 explorer visual"
key: explorer-visual
branches: "!master"
depends_on: check
depends_on: explorer-check
timeout_in_minutes: 30
cache: *deps_cache
artifact_paths:
+11 -11
View File
@@ -4,14 +4,14 @@
#
# The broker creates exactly one Buildkite pipeline per Radicle repo, so every
# suite lands in this single build. Cache volumes are scoped to the pipeline, so
# the same name in two uploaded files is one volume: node-checks.yml, e2e.yml and
# visual.yml all attach `deps` on purpose. Share a name only where that is safe,
# because a step that commits a volume version discards what a concurrent step
# wrote to the same volume.
# the same name in two uploaded files is one volume: explorer-node-checks.yml,
# explorer-e2e.yml and explorer-visual.yml all attach `deps` on purpose. Share a
# name only where that is safe, because a step that commits a volume version
# discards what a concurrent step wrote to the same volume.
#
# Upload node-checks.yml before e2e.yml: the e2e step depends on the `check` key
# defined there, and Buildkite rejects a step whose dependency is not yet part of
# the build.
# Upload explorer-node-checks.yml before explorer-e2e.yml: the e2e step depends
# on the `explorer-check` key defined there, and Buildkite rejects a step whose
# dependency is not yet part of the build.
#
# Superseded builds are not cancelled. Buildkite has no YAML equivalent of the
# GitHub Actions cancel-in-progress.
@@ -19,7 +19,7 @@
steps:
- label: ":pipeline: upload"
commands:
- buildkite-agent pipeline upload .buildkite/node-checks.yml
- buildkite-agent pipeline upload .buildkite/e2e.yml
- buildkite-agent pipeline upload .buildkite/visual.yml
- buildkite-agent pipeline upload .buildkite/rust.yml
- buildkite-agent pipeline upload .buildkite/explorer-node-checks.yml
- buildkite-agent pipeline upload .buildkite/explorer-e2e.yml
- buildkite-agent pipeline upload .buildkite/explorer-visual.yml
- buildkite-agent pipeline upload .buildkite/explorer-rust.yml
@@ -1,4 +1,4 @@
name: check-build
name: explorer-build
on:
push:
workflow_dispatch:
@@ -7,7 +7,7 @@ env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
check-build:
build:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
@@ -1,4 +1,4 @@
name: check
name: explorer-check
on:
push:
workflow_dispatch:
@@ -1,4 +1,4 @@
name: check-e2e
name: explorer-e2e
on:
push:
workflow_dispatch:
@@ -7,7 +7,7 @@ env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
check-e2e:
e2e:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
@@ -1,4 +1,4 @@
name: check-http-client-unit-test
name: explorer-http-client-unit-test
on:
push:
workflow_dispatch:
@@ -7,7 +7,7 @@ env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
check-http-client-unit-test:
http-client-unit-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -1,4 +1,4 @@
name: check-rust
name: explorer-rust
on:
push:
workflow_dispatch:
@@ -1,4 +1,4 @@
name: check-unit-test
name: explorer-unit-test
on:
push:
workflow_dispatch:
@@ -7,7 +7,7 @@ env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
check-unit-test:
unit-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -1,4 +1,4 @@
name: check-visual
name: explorer-visual
on:
push:
workflow_dispatch:
+2 -2
View File
@@ -9,9 +9,9 @@ steps:
# The cargo warm steps only fill the image's target/ directories. At run
# time cargo builds what a command needs when it runs, so a run that works
# on another workspace member doesn't wait for two Rust workspaces.
- name: warm clippy (check-rust lint, image builds only)
- name: warm clippy (explorer-rust lint, image builds only)
run: '[ "$RYPH_SETUP_PHASE" != image ] || RUSTFLAGS="-D warnings" cargo clippy --workspace --all-features --tests --locked'
- name: warm the Rust test build (check-rust test, image builds only)
- name: warm the Rust test build (explorer-rust test, image builds only)
run: '[ "$RYPH_SETUP_PHASE" != image ] || cargo test --workspace --all-features --no-run --locked'
# desktop/ is its own npm package and Cargo workspace.
- name: install desktop npm dependencies
+1 -1
View File
@@ -21,7 +21,7 @@ checks and conventions:
| `workers/` | explorer | Cloudflare workers (open-graph images) |
| `scripts/` | explorer | Check, CI and e2e helper scripts |
| `desktop/` | desktop | Tauri app: Svelte frontend in `desktop/src/`, Rust in `desktop/crates/` |
| `.github/workflows/` | both | GitHub CI: `check*.yml` for explorer, `desktop-*.yml` for desktop |
| `.github/workflows/` | both | GitHub CI: `explorer-*.yml` for explorer, `desktop-*.yml` for desktop |
| `.buildkite/` | explorer | Radicle CI pipelines |
| `.ryph/` | both | Dev machine image and setup for agents, see `.ryph/environment.md` |
+2 -2
View File
@@ -1,10 +1,10 @@
#!/usr/bin/env bash
# Runs the same checks as the explorer's GitHub workflows (.github/workflows/
# check*.yml) and keeps the full output with per-step timings in
# explorer-*.yml) and keeps the full output with per-step timings in
# tests/tmp/check-ci.log. That log lives outside tests/artifacts, which
# Playwright clears when the e2e run starts.
#
# Leaves out check-visual.yml: its baselines exist only as CI artifacts. The
# Leaves out explorer-visual.yml: its baselines exist only as CI artifacts. The
# desktop app in desktop/ has its own desktop/scripts/check-ci.
set -uo pipefail