master
py 40 lines 1.58 KB
Raw
1 #!/usr/bin/env python3
2
3 import json
4 import sys
5
6 from ruamel.yaml import YAML
7
8 ALWAYS_RUN_ARCHES = ["amd64", "x86_64", 'i386', 'armhf', 'aarch64', 'arm64']
9 SHORT_RUN = sys.argv[1]
10 yaml = YAML(typ='safe')
11 entries = list()
12 run_limited = False
13
14 with open('.github/data/distros.yml') as f:
15 data = yaml.load(f)
16
17 if bool(int(SHORT_RUN)):
18 run_limited = True
19
20 for i, v in enumerate(data['include']):
21 if 'packages' in data['include'][i]:
22 for arch in data['include'][i]['packages']['arches']:
23 if arch in ALWAYS_RUN_ARCHES or not run_limited:
24 entries.append({
25 'distro': data['include'][i]['distro'],
26 'version': data['include'][i]['version'],
27 'repo_distro': data['include'][i]['packages']['repo_distro'],
28 'format': data['include'][i]['packages']['type'],
29 'base_image': data['include'][i]['base_image'] if 'base_image' in data['include'][i] else ':'.join([data['include'][i]['distro'], data['include'][i]['version']]),
30 'builder_rev': data['include'][i]['packages']['builder_rev'],
31 'platform': data['platform_map'][arch],
32 'bundle_sentry': data['include'][i]['bundle_sentry'][arch],
33 'arch': arch,
34 'runner': data['arch_data'][arch]['runner'],
35 'qemu': data['arch_data'][arch]['qemu'],
36 })
37
38 entries.sort(key=lambda k: (data['arch_order'].index(k['arch']), k['distro'], k['version']))
39 matrix = json.dumps({'include': entries}, sort_keys=True)
40 print(matrix)