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...

Changed files
+10 -4
packetmix
npins
+10 -4
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 ··· 124 127 repository, 125 128 revision, 126 129 url ? null, 130 + branch ? null, 127 131 submodules, 128 132 hash, 129 133 ... ··· 159 163 "${if matched == null then "source" else builtins.head matched}${appendShort}"; 160 164 name = urlToName url revision; 161 165 in 162 - fetchGit { 166 + fetchGit ({ 163 167 rev = revision; 164 168 narHash = hash; 165 169 166 170 inherit name submodules url; 167 - }; 171 + } // (if branch == null then {} else { 172 + ref = "refs/heads/${branch}"; 173 + })); 168 174 169 175 mkPyPiSource = 170 176 { fetchurl, ... }: