gen-matrix-packaging.py 1.6 KB

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