ci: add cuda type-check job so CUDA-only borrowck errors fail fast
Some checks failed
build-prerelease / Resolve version stamps (push) Successful in 30s
CI / Format (push) Successful in 37s
CI / CUDA type-check (push) Failing after 3m8s
CI / Clippy (push) Successful in 2m27s
build-prerelease / Build neuron-blackwell (push) Successful in 5m46s
build-prerelease / Build cortex binary (push) Successful in 5m0s
build-prerelease / Build neuron-ampere (push) Successful in 7m39s
CI / Test (push) Successful in 5m37s
CI / Build cortex SRPM (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
build-prerelease / Package cortex RPM (push) Successful in 1m33s
build-prerelease / Build neuron-ada (push) Successful in 5m12s
build-prerelease / Package helexa-neuron-ada RPM (push) Successful in 3m0s
build-prerelease / Package helexa-neuron-ampere RPM (push) Successful in 3m8s
build-prerelease / Package helexa-neuron-blackwell RPM (push) Successful in 3m43s
build-prerelease / Publish to rpm.lair.cafe (unstable) (push) Successful in 1m9s
Some checks failed
build-prerelease / Resolve version stamps (push) Successful in 30s
CI / Format (push) Successful in 37s
CI / CUDA type-check (push) Failing after 3m8s
CI / Clippy (push) Successful in 2m27s
build-prerelease / Build neuron-blackwell (push) Successful in 5m46s
build-prerelease / Build cortex binary (push) Successful in 5m0s
build-prerelease / Build neuron-ampere (push) Successful in 7m39s
CI / Test (push) Successful in 5m37s
CI / Build cortex SRPM (push) Has been skipped
CI / Build neuron SRPM (push) Has been skipped
CI / Publish cortex to COPR (push) Has been skipped
CI / Publish neuron to COPR (push) Has been skipped
CI / Bump version in source (push) Has been skipped
build-prerelease / Package cortex RPM (push) Successful in 1m33s
build-prerelease / Build neuron-ada (push) Successful in 5m12s
build-prerelease / Package helexa-neuron-ada RPM (push) Successful in 3m0s
build-prerelease / Package helexa-neuron-ampere RPM (push) Successful in 3m8s
build-prerelease / Package helexa-neuron-blackwell RPM (push) Successful in 3m43s
build-prerelease / Publish to rpm.lair.cafe (unstable) (push) Successful in 1m9s
Run 244 caught a use-of-moved-value in a `#[cfg(feature = "cuda")]` block that the default-feature workspace clippy/test gate had no chance of seeing. The error appeared only when the RPM build workflow compiled with `--features cuda` — 30+ minutes after push. Add a `cuda-check` job to ci.yml that runs `cargo check -p neuron --features cuda --all-targets` on the rpm runner (where nvcc / cudarc build deps live; the generic `rust` runner doesn't have them). Borrow-check only — we never run tests here, the runner has no GPU. Same retry pattern as clippy/test. Both SRPM jobs (`srpm-cortex`, `srpm-neuron`) now gate on `cuda-check` so a CUDA build break can't reach the release pipeline. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -92,10 +92,40 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
- run: sccache --show-stats
|
- run: sccache --show-stats
|
||||||
|
|
||||||
|
# Type-check the CUDA-only code path. Borrow-check-only — we
|
||||||
|
# never run the tests here (the runner has no GPU). This catches
|
||||||
|
# the category of bug where a refactor compiles fine under the
|
||||||
|
# default feature set (which is what the `clippy` and `test` jobs
|
||||||
|
# exercise) but fails inside a `#[cfg(feature = "cuda")]` block.
|
||||||
|
# Lives on `runs-on: rpm` because that's where nvcc / cudarc's
|
||||||
|
# build prerequisites are installed; the generic `rust` runner
|
||||||
|
# doesn't have them.
|
||||||
|
cuda-check:
|
||||||
|
name: CUDA type-check
|
||||||
|
runs-on: rpm
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: cargo check --features cuda (with retry)
|
||||||
|
run: |
|
||||||
|
for attempt in 1 2 3; do
|
||||||
|
echo "::group::cuda-check attempt ${attempt}"
|
||||||
|
if cargo check -p neuron --features cuda --all-targets; then
|
||||||
|
echo "::endgroup::"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
echo "::endgroup::"
|
||||||
|
echo "cuda-check failed on attempt ${attempt}"
|
||||||
|
if [ "${attempt}" -lt 3 ]; then
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "cuda-check failed after 3 attempts"
|
||||||
|
exit 1
|
||||||
|
|
||||||
srpm-cortex:
|
srpm-cortex:
|
||||||
name: Build cortex SRPM
|
name: Build cortex SRPM
|
||||||
runs-on: rpm
|
runs-on: rpm
|
||||||
needs: [fmt, clippy, test]
|
needs: [fmt, clippy, test, cuda-check]
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -155,7 +185,7 @@ jobs:
|
|||||||
srpm-neuron:
|
srpm-neuron:
|
||||||
name: Build neuron SRPM
|
name: Build neuron SRPM
|
||||||
runs-on: rpm
|
runs-on: rpm
|
||||||
needs: [fmt, clippy, test]
|
needs: [fmt, clippy, test, cuda-check]
|
||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
Reference in New Issue
Block a user