back interdiff of round #2 and #1

ci: fetch dependencies before evaluate #128

merged
opened by a.starrysky.fyi targeting main from private/minion/push-mlmuvqqtptlt

Due to what I suspect must be either an npins or a lix bug, we get this error when evaluating our configuration on new machines:

… while fetching the input 'git+https://gerrit.wikimedia.org/r/mediawiki/extensions/AdvancedSearch?rev=398c9fa782843d8b3aeaa5ebb1c1b3db35c3382f'

error: Cannot find Git revision '398c9fa782843d8b3aeaa5ebb1c1b3db35c3382f' in ref 'refs/heads/master' of repository 'https://gerrit.wikimedia.org/r/mediawiki/extensions/AdvancedSearch'! Please make sure that the rev exists on the ref you've specified or add allRefs = true; to fetchGit.

Now, this is what I'd expect - because we're not meant to be fetching master of this extension - we're meant to be fetching a branch! By using npins to prefetch all dependencies, we get around this.

Due to a nilla bug, fetching dependencies is required for evaluation anyway - so this isn't too much more of an issue than it would already have been...

REVERTED
.tangled/workflows/packetmix-build.yml
··· 12 12 - lix 13 13 - gnugrep 14 14 - openssh 15 - - npins 16 15 17 16 steps: 18 17 - name: Get remote builds SSH key ··· 38 37 echo "extra-experimental-features = nix-command" >> /etc/nix/nix.conf 39 38 echo "max-jobs = 0" >> /etc/nix/nix.conf 40 39 echo "builders = ssh-ng://remoteBuilds@midnight?ssh-key=/tmp/key-ssh-remote-build x86_64-linux" >> /etc/nix/nix.conf 41 - - name: Fetch dependencies 42 - command: | 43 - cd packetmix 44 - npins update --partial 45 - cd .. 46 40 - name: Evaluate all systems 47 41 command: | 48 42 set +e
REVERTED
.tangled/workflows/packetmix-release.yml
··· 12 12 - lix 13 13 - gnugrep 14 14 - openssh 15 - - npins 16 15 17 16 steps: 18 17 - name: Get remote builds SSH key ··· 45 44 echo "extra-experimental-features = nix-command" >> /etc/nix/nix.conf 46 45 echo "max-jobs = 0" >> /etc/nix/nix.conf 47 46 echo "builders = ssh-ng://remoteBuilds@midnight?ssh-key=/tmp/key-ssh-remote-build x86_64-linux" >> /etc/nix/nix.conf 48 - - name: Fetch dependencies 49 - command: | 50 - cd packetmix 51 - npins update --partial 52 - cd .. 53 47 - name: Evaluate all systems 54 48 command: | 55 49 set +e
REVERTED
.tangled/workflows/packetmix-treefmt.yaml
··· 12 12 nixpkgs: 13 13 - lix 14 14 - openssh 15 - - npins 16 15 17 16 steps: 18 17 - name: Get remote builds SSH key ··· 38 37 echo "extra-experimental-features = nix-command" >> /etc/nix/nix.conf 39 38 echo "sandbox = false" >> /etc/nix/nix.conf 40 39 echo "max-jobs = 0" >> /etc/nix/nix.conf 41 - - name: Fetch dependencies 42 - command: | 43 - cd packetmix 44 - npins update --partial 45 - cd .. 46 40 - name: Ensure files are formatted with treefmt 47 41 command: | 48 42 set -e
NEW
packetmix/npins/default.nix
··· 85 85 url, 86 86 submodules, 87 87 rev, 88 + branch ? null, 88 89 name, 89 90 narHash, 90 91 }: 91 - pkgs.fetchgit { 92 + pkgs.fetchgit ({ 92 93 inherit url rev name; 93 94 fetchSubmodules = submodules; 94 95 hash = narHash; 95 - }; 96 + } // (if branch == null then {} else { 97 + ref = "refs/heads/${branch}"; 98 + })); 96 99 }; 97 100 98 101 # Dispatch to the correct code path based on the type