dockerfiles/uwsgi-nginx/scripts/process_all.py

55 lines
1.4 KiB
Python

import os
import subprocess
import sys
environments = [
{"NAME": "latest", "PYTHON_VERSION": "3.8"},
{"NAME": "python3.8", "PYTHON_VERSION": "3.8"},
{"NAME": "python3.7", "PYTHON_VERSION": "3.7"},
{"NAME": "python3.6", "PYTHON_VERSION": "3.6"},
{"NAME": "python2.7", "PYTHON_VERSION": "2.7"},
{"NAME": "python3.8-alpine", "PYTHON_VERSION": "3.8"},
]
start_with = os.environ.get("START_WITH")
build_push = os.environ.get("BUILD_PUSH")
def process_tag(*, env: dict) -> None:
use_env = {**os.environ, **env}
script = "scripts/test.sh"
if build_push:
script = "scripts/build-push.sh"
return_code = subprocess.call(["bash", script], env=use_env)
if return_code != 0:
sys.exit(return_code)
def print_version_envs() -> None:
env_lines = []
for env in environments:
env_vars = []
for key, value in env.items():
env_vars.append(f"{key}='{value}'")
env_lines.append(" ".join(env_vars))
for line in env_lines:
print(line)
def main() -> None:
start_at = 0
if start_with:
start_at = [
i for i, env in enumerate((environments)) if env["NAME"] == start_with
][0]
for i, env in enumerate(environments[start_at:]):
print(f"Processing tag: {env['NAME']}")
process_tag(env=env)
if __name__ == "__main__":
if len(sys.argv) > 1:
print_version_envs()
else:
main()