Introduce nix and just for reproducible CI locally #5202
Closed
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.
The goal is to allow dev to quickly become productive, and be able to execute exactly what is run during CI before they submit a PR.
Nix Integration:
.envrc
for direnv integration withuse flake
to load the Nix environment.flake.nix
andflake.lock
to define and lock dependencies..gitignore
to include.direnv
, which is generated by Direnv and Nix workflow.Just Task Runner:
justfile
to define reproducible commands for tasks such as:init
: Installs node dependencies ifnode_modules
does not exist.lint
: Runs linting on the codebase.build
: Compiles the project.test
: Typechecks and tests the project.ci
: Comprehensive task that runsinit
,build
,lint
, andtest
stages.Updates to Pre-commit Hook:
pre-push
hook inpackage.json
to runjest -o
. This ensures that only changed files before a remote push.