mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-18 19:30:27 +08:00
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:
@@ -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
@@ -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:
|
||||
+2
-2
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user