process_all.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import os
  2. import subprocess
  3. import sys
  4. environments = [
  5. {"NAME": "latest", "PYTHON_VERSION": "3.8"},
  6. {"NAME": "python3.8", "PYTHON_VERSION": "3.8"},
  7. {"NAME": "python3.7", "PYTHON_VERSION": "3.7"},
  8. {"NAME": "python3.6", "PYTHON_VERSION": "3.6"},
  9. {"NAME": "python2.7", "PYTHON_VERSION": "2.7"},
  10. {"NAME": "python3.8-alpine", "PYTHON_VERSION": "3.8"},
  11. ]
  12. start_with = os.environ.get("START_WITH")
  13. build_push = os.environ.get("BUILD_PUSH")
  14. def process_tag(*, env: dict) -> None:
  15. use_env = {**os.environ, **env}
  16. script = "scripts/test.sh"
  17. if build_push:
  18. script = "scripts/build-push.sh"
  19. return_code = subprocess.call(["bash", script], env=use_env)
  20. if return_code != 0:
  21. sys.exit(return_code)
  22. def print_version_envs() -> None:
  23. env_lines = []
  24. for env in environments:
  25. env_vars = []
  26. for key, value in env.items():
  27. env_vars.append(f"{key}='{value}'")
  28. env_lines.append(" ".join(env_vars))
  29. for line in env_lines:
  30. print(line)
  31. def main() -> None:
  32. start_at = 0
  33. if start_with:
  34. start_at = [
  35. i for i, env in enumerate((environments)) if env["NAME"] == start_with
  36. ][0]
  37. for i, env in enumerate(environments[start_at:]):
  38. print(f"Processing tag: {env['NAME']}")
  39. process_tag(env=env)
  40. if __name__ == "__main__":
  41. if len(sys.argv) > 1:
  42. print_version_envs()
  43. else:
  44. main()