From e29c9e35f08beb8b77318fc8b34a5954df9f88f6 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Tue, 19 May 2026 07:04:57 +0300 Subject: [PATCH] fix(ci): ensure rust toolchain present on cuda-13.0 runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The currently-published runner-cuda-13.0 image (gongfoo) is missing rust/cargo despite inheriting from runner-rust. Build-neuron fails immediately with 'cargo: command not found' even though build-cortex on the bare 'rust' runner builds fine. Add a defensive `dnf install rust cargo clippy` step at the top of build-neuron. Idempotent — on a properly-built runner image this is a fast no-op; on the current broken image it installs the toolchain in a few seconds. The runner image itself should be rebuilt in gongfoo so this step becomes redundant. Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitea/workflows/build-prerelease.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/build-prerelease.yml b/.gitea/workflows/build-prerelease.yml index a1e0e01..2342cb7 100644 --- a/.gitea/workflows/build-prerelease.yml +++ b/.gitea/workflows/build-prerelease.yml @@ -108,14 +108,25 @@ jobs: build_jobs: 8 nvcc_threads: 4 cargo_features: "cuda cudnn flash-attn" - # runner-cuda-13.0 extends runner-rust, so rust/cargo are already - # present via dnf — no rustup install step needed. + # runner-cuda-13.0 inherits from runner-rust in gongfoo, so rust + # *should* be available via dnf. The currently-published image is + # missing it though (likely a stale build), so we run a defensive + # `dnf install` at the top of the step. When the runner image is + # rebuilt with the proper layers this becomes a fast no-op. runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 with: ref: ${{ inputs.ref }} + - name: Ensure rust toolchain present + run: | + set -eux + if ! command -v cargo >/dev/null 2>&1; then + sudo dnf install -y --setopt=install_weak_deps=False rust cargo clippy + fi + cargo --version + - name: Build neuron with CUDA (${{ matrix.flavour }}) run: | set -eux