ci: run lint before build steps - #313
Merged
Merged
Conversation
ludfjig
previously approved these changes
Sep 17, 2026
simongdavies
force-pushed
the
simongdavies-lint-before-build-in-ci
branch
3 times, most recently
from
September 29, 2026 09:07
56ef23d to
4f9a875
Compare
ludfjig
previously approved these changes
Sep 30, 2026
Base automatically changed from
simongdavies-npm-linux-arm64-packaging
to
main
September 30, 2026 18:10
`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>
simongdavies
force-pushed
the
simongdavies-lint-before-build-in-ci
branch
from
September 30, 2026 18:11
4f9a875 to
41dec84
Compare
ludfjig
approved these changes
Oct 1, 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).