lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

commit f727032fae7ded10471927a2aadf6f6356291360
parent e0e3c897b2919b4c1130bc7cf97d525bd655bff4
Author: triesap <tyson@radroots.org>
Date:   Fri, 13 Mar 2026 01:34:13 +0000

ci: remove flake warnings and node24 deprecations

- add explicit descriptions for flake apps so app evaluations stop warning on missing metadata
- move sdk-typescript bun validation behind a pinned flake app instead of the node20 setup action
- update workflow checkout and artifact pins to node24-compatible shas and drop the unsupported magic nix cache step
- keep the nix command map aligned with the new validation app and reviewed workflow surface

Diffstat:
M.github/workflows/nix-flake-ci.yml | 6+-----
M.github/workflows/publish-crates.yml | 6+-----
M.github/workflows/release-preflight.yml | 8++------
M.github/workflows/sdk-contract-ci.yml | 8++------
M.github/workflows/sdk-core-sync-pr.yml | 25+++++--------------------
M.github/workflows/sdk-coverage-ci.yml | 8++------
M.github/workflows/update-flake-lock.yml | 2+-
Mdocs/nix.md | 2++
Mnix/apps.nix | 19+++++++++++++++++++
Mnix/common.nix | 23+++++++++++++++++++++++
10 files changed, 58 insertions(+), 49 deletions(-)

diff --git a/.github/workflows/nix-flake-ci.yml b/.github/workflows/nix-flake-ci.yml @@ -9,7 +9,6 @@ on: permissions: contents: read - id-token: write jobs: flake-check: @@ -22,7 +21,7 @@ jobs: runs-on: ${{ matrix.runner }} steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -30,8 +29,5 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: run flake check run: nix flake check diff --git a/.github/workflows/publish-crates.yml b/.github/workflows/publish-crates.yml @@ -18,7 +18,6 @@ on: permissions: contents: read - id-token: write concurrency: group: publish-crates @@ -29,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -37,9 +36,6 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: verify workspace run: nix run .#check diff --git a/.github/workflows/release-preflight.yml b/.github/workflows/release-preflight.yml @@ -5,14 +5,13 @@ on: permissions: contents: read - id-token: write jobs: preflight: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -20,9 +19,6 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: run repo guards run: nix run .#guards @@ -30,7 +26,7 @@ jobs: run: nix run .#release-preflight - name: upload release preflight artifacts - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f with: name: release-preflight path: | diff --git a/.github/workflows/sdk-contract-ci.yml b/.github/workflows/sdk-contract-ci.yml @@ -8,14 +8,13 @@ on: permissions: contents: read - id-token: write jobs: contract: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -23,14 +22,11 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: run contract lane run: nix run .#contract - name: upload export manifest - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f with: name: sdk-export-manifest path: target/sdk-export-ci/ts/export-manifest.json diff --git a/.github/workflows/sdk-core-sync-pr.yml b/.github/workflows/sdk-core-sync-pr.yml @@ -23,14 +23,13 @@ on: permissions: contents: read - id-token: write jobs: sync-models: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -38,9 +37,6 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: run repo guards run: nix run .#guards @@ -76,14 +72,14 @@ jobs: - name: upload sdk export artifact if: steps.sync_token.outputs.configured == 'true' - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f with: name: sdk-export-ts-bundle path: ${{ runner.temp }}/sdk-export/ts - name: checkout sdk-typescript if: steps.sync_token.outputs.configured == 'true' - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with: repository: radrootslabs/sdk-typescript ref: master @@ -107,24 +103,13 @@ jobs: rsync -a --delete "${wasm_src}/" sdk-typescript/packages/events-codec-wasm/dist/ fi - - name: setup bun - if: steps.sync_token.outputs.configured == 'true' - uses: oven-sh/setup-bun@ecf28ddc73e819eb6fa29df6b34ef8921c743461 - with: - bun-version: 1.3.9 - - name: validate sdk-typescript if: steps.sync_token.outputs.configured == 'true' - working-directory: sdk-typescript - run: | - bun install --frozen-lockfile - bun run typecheck - bun run build - bun run test + run: nix run .#validate-sdk-typescript -- sdk-typescript - name: create pull request if: steps.sync_token.outputs.configured == 'true' - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e + uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 with: token: ${{ secrets.RADROOTS_SDK_SYNC_TOKEN }} path: sdk-typescript diff --git a/.github/workflows/sdk-coverage-ci.yml b/.github/workflows/sdk-coverage-ci.yml @@ -17,14 +17,13 @@ on: permissions: contents: read - id-token: write jobs: coverage-report: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install nix uses: cachix/install-nix-action@1ca7d21a94afc7c957383a2d217460d980de4934 @@ -32,14 +31,11 @@ jobs: extra_nix_config: | experimental-features = nix-command flakes - - name: prime nix cache - uses: DeterminateSystems/magic-nix-cache-action@565684385bcd71bad329742eefe8d12f2e765b39 - - name: run sdk coverage report set run: nix run .#coverage-report - name: upload sdk coverage reports - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f with: name: sdk-coverage-reports path: | diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - name: install determinate nix uses: DeterminateSystems/determinate-nix-action@131015bad844610e5e6300f8a143bf625d3e74f4 diff --git a/docs/nix.md b/docs/nix.md @@ -87,6 +87,7 @@ nix run .#export-ts nix run .#coverage-report nix run .#wasm-builds nix run .#release-preflight +nix run .#validate-sdk-typescript -- ./sdk-typescript nix run .#publish-dry-run nix run .#publish-crates -- --dry-run ``` @@ -102,6 +103,7 @@ nix run .#publish-crates -- --dry-run Repo-aware flows stay behind `nix run` apps because they need a real checkout: - `sdk export-ts` writes into repo-local `target/` +- sdk sync validation runs `bun` against a checked-out `sdk-typescript` repo path - coverage refresh and release preflight produce repo-local artifacts - wasm packaging writes package output directories - publish commands read runtime tokens and the live checkout state diff --git a/nix/apps.nix b/nix/apps.nix @@ -5,6 +5,7 @@ let mkRepoApp = { name, + description ? "Run ${name} in the radroots workspace", runtimeInputs, command, env ? common.exportSharedEnv, @@ -30,23 +31,27 @@ let { type = "app"; program = "${script}/bin/${name}"; + meta.description = description; }; in { check = mkRepoApp { name = "check"; + description = "Run cargo check across the radroots workspace"; runtimeInputs = common.runtimeInputs.stable; command = common.checkCommand; }; contract = mkRepoApp { name = "contract"; + description = "Run the sdk contract lane and export validation"; runtimeInputs = common.runtimeInputs.stable; command = common.contractCommand; }; coverage-report = mkRepoApp { name = "coverage-report"; + description = "Generate sdk coverage reports and blocking gate artifacts"; runtimeInputs = common.runtimeInputs.coverage; command = common.coverageReportCommand; env = common.exportCoverageEnv; @@ -55,6 +60,7 @@ in export-ts = mkRepoApp { name = "export-ts"; + description = "Export generated typescript sdk artifacts"; runtimeInputs = common.runtimeInputs.stable; command = '' cargo run -q -p xtask -- sdk export-ts "$@" @@ -63,6 +69,7 @@ in guards = mkRepoApp { name = "guards"; + description = "Run repository guard scripts"; runtimeInputs = common.runtimeInputs.stable; command = '' ./scripts/ci/guard_committed_ts_artifacts.sh @@ -72,6 +79,7 @@ in fmt = mkRepoApp { name = "fmt"; + description = "Format rust, nix, shell, and toml files"; runtimeInputs = common.runtimeInputs.stable ++ [ config.treefmt.build.wrapper ]; @@ -83,6 +91,7 @@ in publish-crates = mkRepoApp { name = "publish-crates"; + description = "Publish crates through the workspace release script"; runtimeInputs = common.runtimeInputs.release; command = '' ./publish-crates.sh "$@" @@ -93,6 +102,7 @@ in publish-dry-run = mkRepoApp { name = "publish-dry-run"; + description = "Run a dry-run crates publish through the workspace release script"; runtimeInputs = common.runtimeInputs.release; command = '' ./publish-crates.sh --dry-run "$@" @@ -103,14 +113,23 @@ in release-preflight = mkRepoApp { name = "release-preflight"; + description = "Run release coverage refresh and preflight validation"; runtimeInputs = common.runtimeInputs.coverage; command = common.releasePreflightCommand; env = common.exportCoverageEnv; pathPrefix = coveragePath; }; + validate-sdk-typescript = mkRepoApp { + name = "validate-sdk-typescript"; + description = "Validate the synced sdk-typescript checkout with bun"; + runtimeInputs = common.runtimeInputs.sync; + command = common.validateSdkTypescriptCommand; + }; + wasm-builds = mkRepoApp { name = "wasm-builds"; + description = "Build the wasm packages defined by the workspace makefile"; runtimeInputs = common.runtimeInputs.wasm; command = common.wasmBuildsCommand; }; diff --git a/nix/common.nix b/nix/common.nix @@ -54,6 +54,9 @@ let pkg-config python3 ] ++ darwinBuildInputs; + syncRuntimeInputs = stableRuntimeInputs ++ [ + pkgs.bun + ]; coverageRuntimeInputs = stableRuntimeInputs ++ [ toolchains.coverage pkgs.cargo-llvm-cov @@ -164,6 +167,24 @@ let releasePreflightCommand = '' ./scripts/ci/release_preflight.sh ''; + validateSdkTypescriptCommand = '' + if [ "$#" -ne 1 ]; then + echo "usage: validate-sdk-typescript <path-to-sdk-typescript-checkout>" >&2 + exit 1 + fi + + target_dir="$1" + if [ ! -d "$target_dir" ]; then + echo "sdk-typescript checkout not found at $target_dir" >&2 + exit 1 + fi + + cd "$target_dir" + bun install --frozen-lockfile + bun run typecheck + bun run build + bun run test + ''; coverageReportCommand = '' mkdir -p target/sdk-coverage : > target/sdk-coverage/coverage-report-status.txt @@ -319,6 +340,7 @@ in releasePreflightCommand sdkContractCargoArgs sharedEnv + validateSdkTypescriptCommand version wasmBuildsCommand xtaskPackage; @@ -328,6 +350,7 @@ in runtimeInputs = { stable = stableRuntimeInputs; + sync = syncRuntimeInputs; coverage = coverageRuntimeInputs; release = releaseRuntimeInputs; wasm = wasmRuntimeInputs;