forked from DeterminateSystems/nix-installer
-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
assemble_installer.py
28 lines (23 loc) · 977 Bytes
/
assemble_installer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import requests
import subprocess
import shutil
import sys
response = requests.get('https://hydra.nixos.org/jobset/experimental-nix-installer/experimental-installer/evals', headers={'Accept': 'application/json'})
hydra_eval = response.json()['evals'][0]
installers = []
for build_id in hydra_eval['builds']:
response = requests.get(f"https://hydra.nixos.org/build/{build_id}", headers={'Accept': 'application/json'})
build = response.json()
installer_url = build['buildoutputs']['out']['path']
system = build['system']
if build['finished'] == "1":
try:
subprocess.call(f"nix-store -r {installer_url}", shell=True)
except:
# retry once
subprocess.call(f"nix-store -r {installer_url}", shell=True)
installers.append((installer_url, system))
else:
sys.exit(0)
for installer_url, system in installers:
shutil.copy(f"{installer_url}/bin/nix-installer", f"nix-installer-{system}")