""" """ # ------------------------------------------------------- # # imports # ------------------------------------------------------- # import os import subprocess from invoke import task from time import time from BBProjectUtils.docker_utils import docker_build as lib_docker_build, docker_deployment as lib_docker_deployment, \ docker_login_registry from BBProjectUtils.file_utils import set_version_nr_in_file from BBProjectUtils.git_utils import check_ready_to_release, release_commit from BBProjectUtils.standard_tasks import set_venv_name # ------------------------------------------------------- # # definitions # ------------------------------------------------------- # ARCHIVE_NAME = "SevReqCircle" VIRTUALENV_NAME = f"py311_{ARCHIVE_NAME}" DEVELOP_VERSION = "99.99.99" DOCKER_REGISTRY = "gitea.tech-buddy.at/bitbuddydev" DOCKER_IMAGE_NAME = "sev_req_circle" set_venv_name(VIRTUALENV_NAME) # ------------------------------------------------------- # # global variables # ------------------------------------------------------- # # ------------------------------------------------------- # # functions # ------------------------------------------------------- # # ------------------------------------------------------- # # classes # ------------------------------------------------------- # # ------------------------------------------------------- # # tasks # ------------------------------------------------------- # @task def docker_build(c, tag=""): lib_docker_build(c, DOCKER_IMAGE_NAME, tag) @task def docker_deployment(c, tag): docker_login_registry(c, registry=DOCKER_REGISTRY, user=os.getenv('REP_USER'), pwd=os.getenv('REP_PWD')) lib_docker_deployment(c, DOCKER_IMAGE_NAME, DOCKER_REGISTRY, tag + "-amd64") @task def docker_deploy_raspi(c, tag): start_time = time() print("START deploying docker image") docker_login_registry(c, DOCKER_REGISTRY, os.getenv("REP_USER"), os.getenv("REP_PWD")) c.run("docker buildx use bbbuilder") c.run("docker buildx build --platform linux/arm64 " "-t {registry}/{img_name}{tag} .\\ --load".format(registry=DOCKER_REGISTRY, img_name=DOCKER_IMAGE_NAME, tag=":" + tag + "-arm64" if tag != "" else ":latest-arm64")) c.run("docker push {registry}/{img_name}:{tag}".format(registry=DOCKER_REGISTRY, img_name=DOCKER_IMAGE_NAME, tag=tag + "-arm64")) print(f"FINISHED deploying docker image in {int((time() - start_time)/60)} minutes") return True @task def release(c, version): if check_ready_to_release(): set_version_nr_in_file("src/start_page.py", 'APP_VERSION = "\d+.\d+.\d+"', f'APP_VERSION = "{version}"') docker_deployment(c, version) docker_deploy_raspi(c, version) if release_commit(version): set_version_nr_in_file("src/start_page.py", 'APP_VERSION = "\d+.\d+.\d+"', f'APP_VERSION = "{DEVELOP_VERSION}"') subprocess.run('git commit -am "minor set develop version after release"')