How to reproduce jobs locally? -> improve logs
DavHau opened this issue · 3 comments
I just had a failing instance of ofborg-eval-lib-tests
: https://gist.github.com/GrahamcOfBorg/85196b733b08a4c1c29909c2a1a5af42
... and I'm having a hard time trying to debug this.
Several things are missing here:
- Which commands were executed: The logs do not state which command was executed.
- Definition unclear: grepping for
ofborg-eval-lib-tests
in either nixpkgs or nixos/ofborg leads to zero results. Where is the job defined? - Reproduce locally: There are no instructions in the logs how I can reproduce that specific job locally.
All of the above should be easy fixes and would make debugging this stuff a lot easier.
EDIT: I just noticed that it displays the command in github next to the job. So that helps. But still it would be nice to have this clearly stated in the logs as well. Also the command displayed in github nix-build --arg pkgs 'import ./. {}' ./lib/tests/release.nix
doesn't actually seem to work and fails with:
error: store path 'q7375xm60a582561sq84mxyx13j79cjb-.version' starts with illegal character '.'
Related, though not exactly the same as your question: I'd love an easy, one-shot way to run an entire hermetic environment exactly equal to the ofborg runners that run as nixos/nixpkgs CI. E.g. a full nixos config so you can repro CI failures locally and iterate on it before pushing a fix.
I agree this would be very helpful.
I just noticed that it displays the command in github next to the job. So that helps. But still it would be nice to have this clearly stated in the logs as well. Also the command displayed in github nix-build --arg pkgs 'import ./. {}' ./lib/tests/release.nix doesn't actually seem to work and fails
Additionally, it seems GitHub doesn't show the '
characters, making this rather confusing.
Most of the commands ofBorg runs can be seen with proper tokenization in the code here:
ofborg/ofborg/src/tasks/eval/nixpkgs.rs
Lines 433 to 562 in eb120ff