Repository navigation
Conversation
9bb8852 to
db7e9da
Compare
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
8-core timingA real Rust analysis on
Earlier green runs on this branch (~1m 30s) were empty extracts. The
More CPUs do not move the extract
Narrowing the scan is the only other lever, and we are not taking itOf the 28-minute extract, per-file gaps land about here:
Analyzing only changed files is not available for this job:
Not moving to a larger runner, and not narrowing the file set, based on this. |
ca068e0 to
13c1ee0
Compare
Self-hosted runners reject pull_request, so the workflow triggers on the copy-pr-bot mirror push. The nv-cpu-general image has no rustup; the rust:1.98.0-bookworm container supplies it. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
13c1ee0 to
65a9e7d
Compare
linux-amd64-cpu4 matches ubuntu-latest. The 8-core run did not shorten the Rust extract. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
Self-hosted runners reject pull_request, so these workflows trigger on the copy-pr-bot mirror push. Jobs that call cargo use the rust:1.98.0-bookworm container. The Pages deploy job stays on ubuntu-latest. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
The toolkit install needs lsb_release and an Ubuntu apt repo, so it fails in rust:bookworm. Container steps were also running under dash, which rejects set -o pipefail. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
A local action is resolved from the workspace, so the setup action cannot be the first step. Install git, then checkout, then rustup. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
|
😮 The image layers install the CUDA toolkit packages, plus The same thing shows up on the Tile jobs. Checkout on The install step stays. Without it, |
sync-example-locks.sh --check runs under python3. The CUDA devel image does not include it. Signed-off-by: Roman Ivanov <rivanov@nvidia.com>
| run: | | ||
| apt-get update -qq | ||
| apt-get install -y -qq --no-install-recommends \ | ||
| build-essential ca-certificates curl git pkg-config libclang-dev wget |
There was a problem hiding this comment.
It seems like every place this is called installs ca-certificates and git beforehand anyway due to this being in the repo that needs to be checked out. Same with the mark as a safe git repository (maybe I missed some). I think that the duplication should be removed from here as you state it cannot be called until after the checkotu.
Summary
Fixes #1518. Move the GitHub-hosted
ubuntu-latestjobs ontolinux-amd64-cpu4(m7i.xlarge, 4 vCPU / 16 GiB), the same size asubuntu-latest. Tile test jobs incutile-rs.ymlalready run onlinux-amd64-cpu16and stay there.book.yml'sdeployjob stays onubuntu-latest, becauseactions/deploy-pagespublishes GitHub Pages from a GitHub-hosted runner.Problem
ubuntu-latestis 4 vCPU / 16 GB. On this public repository those minutes are free, and that size is the whole free pool. A larger GitHub-hosted runner is billed here too.nv-cpu-generalis the same class of machine at the EC2 rate, and this repository already has that group for Tile CI.Rust CodeQL is the long job. On main push
6d47ae4it took 38m 31s (run); the baseline onubuntu-latestwas 42m 51s (job). On that same push,examples-compiletook 9m 39s and clippy 5m 1s. An 8-core run left the Rust extract at about 35 minutes: the extractor loads each Cargo workspace through rust-analyzer with one worker thread. This pull request keeps every moved job onlinux-amd64-cpu4.Security
ubuntu-latestruns apull_requestworkflow on its own, including one opened from outside NVIDIA.nv-cpu-generaldoes not. Only an NVIDIA employee can start a job on these runners. An outside pull request runs only after an employee has checked that it is legitimate and approved it throughcopy-pr-bot.Each job gets its own VM, destroyed when the job ends. Inbound network access is blocked. The moved workflows trigger on
pushtomainand topull-request/[0-9]+, which is whatcutile-rs.ymlalready does.copy-pr-botis already enabled (.github/copy-pr-bot.yaml). Draft pull requests do not auto-sync.Cost
NVIDIA/cuda-rustis public. Standardubuntu-latestminutes are free. GitHub larger runners are billed on public repositories too.nv-cpu-generalis self-hosted EC2: GitHub does not meter it. The bill is the instance.Rates are list price. GitHub rounds each job up to the next minute. EC2 is us-east-1 Linux on-demand; the runner group's region and any enterprise discount are not in the runner docs. The 150 GiB volume on these labels is extra and small next to the instance.
6d47ae4ran everyubuntu-latestjob this move takes: 53 jobs, 93.1 minutes of runner time, 125 billed minutes.book.ymldeployis left out of that total.ubuntu-latest(this repo, public)linux-amd64-cpu4(this PR)The Rust CodeQL job, measured in
rust:1.98.0-bookwormonlinux-amd64-cpu8, was 36 billed minutes (run): about $0.24 oncpu8, about $0.12 oncpu4if that duration holds. Installingrustupon the 8-core VM took 35m 12s (run). The container run took the same 35 minutes.Changes
runs-on: linux-amd64-cpu4for the jobs that were onubuntu-latest: CI's callees (fmt,clippy,unit-tests,cargo-deny),docs,examples-compile,codeql,bookbuild,status-guard,naming-guard,ci-status, and thechangesjob incutile-rs.yml.pull_request. Trigger onpushtomainandpull-request/[0-9]+.cargo,rustfmt, or the CodeQL Rust extractor run inrust:1.98.0-bookworm. That matches the rootrust-toolchain.tomlpin. The Oxide nightly still comes fromcuda-oxide/rust-toolchain.tomlwhen the job enters that tree. Thenv-cpu-generalimage has norustup, and a missingrustupmakes the Rust extractor exit 0 with an empty database. The Rust leg fails ifrustup show active-toolchaincannot see the root pin.git.book.ymldeploystays onubuntu-latestand runs only forrefs/heads/main, so a mirror push cannot publish the site.cargo-denystay workflow install steps. The image already hasgit,gh,python3, anddockerfor the jobs that run on the VM directly.Result
Container run on
linux-amd64-cpu8: Rust analysis 35m 1s.rustc 1.98.0 (88d9e12ae 2026-08-18), active toolchain overridden by the rootrust-toolchain.toml. 1,391 files extracted without error, 190 with errors, 1,580 scanned.Analyze (actions)passed in the same image.Testing
pull-request/1377runs each moved workflow onlinux-amd64-cpu4book.ymldeploystill runs onubuntu-latestand only formainpull_requestevent no longer targets a self-hosted labelWorkflow-only change.
just checkand example smoketests do not apply.Post-PR TODOs
Checklist
git commit -s)