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