55 lines
1.4 KiB
Python
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()
|