from version import Version from jsonfile import JsonFile URL = "https://registry.hub.docker.com/v2/repositories/library/alpine/tags" skip = ["3.9", "3.9.6", "edge", "latest"] if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile alpine_base_config = JsonFile("./containerfiles/alpine/base/config.json") alpine_s6_base_config = JsonFile("./containerfiles/alpine-s6/base/config.json") alpine_node_config = JsonFile("./containerfiles/alpine/node/config.json") alpine_python_config = JsonFile("./containerfiles/alpine/python/config.json") current = Version(alpine_base_config.read()["args"]["BUILD_FROM_TAG"]) request = requests.get(URL).json() tags = sorted( [ x["name"] for x in request["results"] if x["name"][0].isdigit() and x["name"] not in skip and "." in x["name"] ] ) upstream = Version(tags.pop()) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0)
if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile install_node_version = JsonFile("./include/install/node/versions.json") alpine_node_config = JsonFile("./containerfiles/alpine/node/config.json") alpine_s6_node_config = JsonFile("./containerfiles/alpine-s6/node/config.json") debian_node_config = JsonFile("./containerfiles/debian/node/config.json") debian_s6_node_config = JsonFile("./containerfiles/debian-s6/node/config.json") devcontainer_node_config = JsonFile("./containerfiles/devcontainer/node/config.json") devcontainer_frontend_config = JsonFile( "./containerfiles/devcontainer/frontend/config.json" ) current = Version(install_node_version.read()["node"]) request = requests.get(URL).text upstream = Version(request.split(" Current")[0].split("Download ")[-1]) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) install_node_version.update("node", upstream.string) alpine_node_config.update("tags", upstream.tags) alpine_s6_node_config.update("tags", upstream.tags) alpine_s6_node_config.update("args.BUILD_FROM_TAG", upstream.string)
"""Update yarn.""" from typing import TYPE_CHECKING import requests from version import Version from jsonfile import JsonFile from github import github_release if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile install_yarn_version = JsonFile("./include/install/node/versions.json") current = Version(install_yarn_version.read()["yarn"]) upstream = Version(github_release("yarnpkg/yarn")) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) install_yarn_version.update("yarn", upstream.string) with open("./commit", "w") as commit: commit.write(f"Update Yarn from {current.string} to {upstream.string}") with open("./labels", "w") as labels: labels.write("node,debian/node,alpine/node")
"""Update ghcli.""" from typing import TYPE_CHECKING import requests from version import Version from jsonfile import JsonFile from github import github_release if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile install_ghcli_version = JsonFile("./include/install/ghcli/versions.json") current = Version(install_ghcli_version.read()["ghcli"]) upstream = Version(github_release("cli/cli")) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) install_ghcli_version.update("ghcli", upstream.string) with open("./commit", "w") as commit: commit.write( f"Update GitHub CLI from {current.string} to {upstream.string}") with open("./labels", "w") as labels: labels.write("devcontainer")
from .version import Version from .jsonfile import JsonFile install_python_version = JsonFile("./include/install/python/versions.json") alpine_python_config = JsonFile("./containerfiles/alpine/python/config.json") alpine_s6_python_config = JsonFile( "./containerfiles/alpine-s6/python/config.json") debian_python_config = JsonFile("./containerfiles/debian/python/config.json") debian_s6_python_config = JsonFile( "./containerfiles/debian-s6/python/config.json") devcontainer_integration = JsonFile( "./containerfiles/devcontainer/integration/config.json") devcontainer_python = JsonFile( "./containerfiles/devcontainer/python/config.json") current = Version(install_python_version.read()["python"]) request = requests.get(URL).text upstream = Version(request.split(">Download Python ")[2].split("<")[0]) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) install_python_version.update("python", upstream.string) alpine_python_config.update("tags", upstream.tags) alpine_s6_python_config.update("tags", upstream.tags) alpine_s6_python_config.update("args.BUILD_FROM_TAG", upstream.string) debian_python_config.update("tags", upstream.tags) debian_s6_python_config.update("tags", upstream.tags) debian_s6_python_config.update("args.BUILD_FROM_TAG", upstream.string)
"""Update s6.""" from typing import TYPE_CHECKING import requests from version import Version from jsonfile import JsonFile from github import github_release if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile install_s6_version = JsonFile("./include/install/s6/versions.json") current = Version(install_s6_version.read()["s6"]) upstream = Version(github_release("just-containers/s6-overlay")) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) install_s6_version.update("s6", upstream.string) with open("./commit", "w") as commit: commit.write(f"Update S6 from {current.string} to {upstream.string}") with open("./labels", "w") as labels: labels.write("S6")
from jsonfile import JsonFile URL = "https://registry.hub.docker.com/v1/repositories/library/debian/tags" skip = ["3.9", "3.9.6", "edge", "latest"] if TYPE_CHECKING: from .version import Version from .jsonfile import JsonFile debian_base_config = JsonFile("./containerfiles/debian/base/config.json") debian_s6_base_config = JsonFile("./containerfiles/debian-s6/base/config.json") debian_node_config = JsonFile("./containerfiles/debian/node/config.json") debian_python_config = JsonFile("./containerfiles/debian/python/config.json") current = Version( debian_base_config.read()["args"]["BUILD_FROM_TAG"].split("-")[0]) request = requests.get(URL).json() tags = [ x["name"] for x in request if x["name"][0].isdigit() and x["name"] not in skip and "." in x["name"] and "-slim" in x["name"] and int(x["name"].split(".")[0]) >= 10 ] upstream = Version(tags.pop().split("-")[0]) if current == upstream: print(f"Nothing to do, both current and upstream is {current}") exit(0) debian_base_config.update("args.BUILD_FROM_TAG", f"{upstream.string}-slim")