Skip to content

refactor(queues): macro queues crate #2305

refactor(queues): macro queues crate

refactor(queues): macro queues crate #2305

name: cargo workspace dependency check
on:
pull_request:
branches: [ 'main' ]
types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'rust/cloud-storage/Cargo.toml'
- 'rust/cloud-storage/**/Cargo.toml'
- 'rust/cloud-storage/Cargo.lock'
- 'rust/cloud-storage/.config/hakari.toml'
- 'rust/cloud-storage/workspace-hack/**'
- 'rust/cloud-storage/tools/xtask/**'
- '.github/workspace-dep-closures.json'
- .github/workflows/cargo-workspace-dependency-check.yml
concurrency:
group: cargo-workspace-dependency-check-${{ github.ref }}
cancel-in-progress: true
jobs:
dependency-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: setup rust version
run: rustup default 1.85
- name: install tool
run: cargo install cargo-workspace-dependency-checker@1.0.1
- name: check
run: |
cd rust/cloud-storage
# workspace-hack (generated, see xtask) re-declares third-party deps
# with explicit versions by design — that is how it pins union
# features. Drop it from the member list so this check only polices
# human-written crates for duplicate dependencies.
sed -i '/^ "workspace-hack",$/d' Cargo.toml
cargo-workspace-dependency-checker
# The workspace-hack crate pins every third-party dep to its union feature
# set so a solo `cargo build -p <crate>` resolves identical features to the
# union-built crane dep layers (deployCargoArtifacts /
# lambdaDeployCargoArtifacts) — without it, per-service/per-lambda CI builds
# silently recompile shared deps. The closure map drives the pruned
# per-artifact deploy sources in flake.nix. Both are generated by the
# lock-pinned engine in rust/cloud-storage/tools/xtask; this job rejects drift.
# Regenerate locally with `just hakari` from rust/cloud-storage.
hakari-and-dep-closures:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: generated dependency artifacts are up to date
run: |
cd rust/cloud-storage
cargo run -p xtask --locked -- deps --check