From ba3898de971cedb67de52073a7f7f6badf2aace9 Mon Sep 17 00:00:00 2001 From: notplants Date: Thu, 10 Jun 2021 09:21:21 -0400 Subject: [PATCH] Add ability to just build one package at a time --- README.md | 2 +- peach_package_builder/build_packages.py | 17 +++++++++++++---- peach_package_builder/build_rust_packages.py | 19 +++++++++++++++---- peach_package_builder/constants.py | 1 + 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5593700..bc0dc46 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # peach-package-builder -![Generic badge](https://img.shields.io/badge/version-0.3.4-.svg) +![Generic badge](https://img.shields.io/badge/version-0.3.5-.svg) Scripts for building debian packages for PeachCloud microservices. diff --git a/peach_package_builder/build_packages.py b/peach_package_builder/build_packages.py index 108f1c1..8ec73f7 100644 --- a/peach_package_builder/build_packages.py +++ b/peach_package_builder/build_packages.py @@ -4,12 +4,16 @@ from peach_package_builder.build_rust_packages import build_rust_packages from peach_package_builder.build_peach_config import build_peach_config -def build_packages(default_branch=False): +def build_packages(default_branch=False, package=None): """ builds all PeachCloud microservices as .deb files and adds them to the freight repo + :param default_branch: checks out main git branch if True + :param package: if provided, only builds this package """ - build_rust_packages(default_branch=default_branch) - build_peach_config(default_branch=default_branch) + build_rust_packages(default_branch=default_branch, package=package) + # only build peach-config if no package argument was provided or if peach-config is what is being built + if not package or package == 'peach-config': + build_peach_config(default_branch=default_branch) print("[ MICROSERVICE PACKAGE ARCHIVE UPDATED ]") @@ -21,5 +25,10 @@ if __name__ == '__main__': help="Ensure default branch for all repos for build", action="store_true" ) + parser.add_argument( + "-p", + "--package", + help="Ensure default branch for all repos for build", + ) args = parser.parse_args() - build_packages(default_branch=args.default) \ No newline at end of file + build_packages(default_branch=args.default, package=args.package) \ No newline at end of file diff --git a/peach_package_builder/build_rust_packages.py b/peach_package_builder/build_rust_packages.py index 697e2aa..25a91e7 100644 --- a/peach_package_builder/build_rust_packages.py +++ b/peach_package_builder/build_rust_packages.py @@ -20,12 +20,19 @@ def add_debs_dir_to_freight(): update_freight_cache() -def build_rust_packages(default_branch=False): +def build_rust_packages(default_branch=False, package=None): """ builds all PeachCloud microservices written in rust and copies them to MICROSERVICES_DEB_DIR + :param default_branch: checks out main git branch if True + :param package: if provided, only builds this package """ print("[ BUILDING AND UPDATING RUST MICROSERVICE PACKAGES ]") - for service in SERVICES: + # if package argument was provided, then only build that one package, otherwise build all packages + if package: + services = filter(lambda s: s["name"] == package, SERVICES) + else: + services = SERVICES + for service in services: service_name = service["name"] service_path = os.path.join(MICROSERVICES_SRC_DIR, service_name) print("[ BUILIDING SERVICE {} ]".format(service_name)) @@ -46,8 +53,12 @@ def build_rust_packages(default_branch=False): cwd=service_path).decode("utf-8").strip() subprocess.call(["cp", debian_package_path, MICROSERVICES_DEB_DIR]) - # this function adds all .deb files in MICROSERVICES_DEB_DIR to freight - add_debs_dir_to_freight() + # add deb to freight + package_name = os.path.basename(debian_package_path) + add_deb_to_freight(package_name=package_name, package_path=debian_package_path) + + # update freight cache + update_freight_cache() def build_packages(default_branch=False): diff --git a/peach_package_builder/constants.py b/peach_package_builder/constants.py index 8db0f8e..d568fb7 100644 --- a/peach_package_builder/constants.py +++ b/peach_package_builder/constants.py @@ -31,4 +31,5 @@ SERVICES = [ {"name": "peach-probe", "repo_url": "https://github.com/peachcloud/peach-probe.git"}, {"name": "peach-dyndns-updater", "repo_url": "https://github.com/peachcloud/peach-dyndns-updater.git"}, {"name": "peach-web", "repo_url": "https://github.com/peachcloud/peach-web.git"}, + {"name": "peach-tbot", "repo_url": "https://github.com/peachcloud/peach-tbot.git"}, ] \ No newline at end of file