ci: run lint before build steps - #313
Open
simongdavies wants to merge 1 commit into
Open
simongdavies wants to merge 1 commit into
simongdavies wants to merge 1 commit into
Conversation
`just lint` runs cargo hyperlight clippy, cargo clippy --all-targets and lint-js, none of which need artifacts from the preceding build steps, so nothing was gained by running it after them. clippy executes build.rs, which builds and links the guest, so lint-first also catches guest toolchain and link failures. This is not theoretical: during PR #308 a macOS llvm-ar failure surfaced only in the Build step, many minutes in, when lint-first would have caught it. clippy and cargo build have separate fingerprints, so the reorder does not duplicate compilation work. Net effect: cheap, fast-failing checks run before expensive ones, which shortens the feedback loop on a matrix of 10+ jobs, several of which run on scarce self-hosted runners. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Simon Davies <simongdavies@users.noreply.github.com>
ludfjig
approved these changes
Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves the
lintstep in.github/workflows/dep_build.ymlso it runs before the two build steps.Step order in the
buildjob goes from:to:
Why
just lintrunscargo hyperlight clippy -p hyperlight-js-runtime,cargo clippy --all-targets, andlint-js(eslint, which does its own npm install). None of those need build artifacts from the preceding steps, so nothing was gained by running lint later.build.rs, which builds and links the guest, so lint-first also catches guest toolchain and link failures. This is not theoretical: during Add macOS (hvf) and aarch64 support #308 a macOSllvm-arfailure surfaced only in the Build step, many minutes in, when lint-first would have caught it.cargo buildhave separate fingerprints, so reordering them does not duplicate compilation work.Scope
Ordering only. The diff is 3 insertions / 3 deletions; parsing the workflow before and after yields an identical set of steps in a different order.
fail-fastand the macOS-only steps from #308 (Set up LLVM guest toolchain,Sign node for Hypervisor.framework) are untouched.Part of stack #311. Base is
simongdavies-npm-linux-arm64-packaging(#310).