From b4bc9dbec9b70d1755a245e98ac99ba7f146d9d0 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Thu, 29 Aug 2024 10:05:01 +0200 Subject: [PATCH] Do not use base_deps when building releases. Initially we were building all our dependencies in release. This was simply made by always compiling project using autotool or cmake in release. As our project are using meson/qmake, all the dependencies are build in release. However, with recent port to Windows github CI, we have two problems: - We have moved almost all buildsystem to meson - On Windows, we cannot mix debug and release build. So, when doing a release, do not use base dependencies cache. This will extend the release workflow as we need to build everything but at least we should build everything correctly. --- .github/scripts/ensure_base_deps.py | 50 ++++++++++++++++++----------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/.github/scripts/ensure_base_deps.py b/.github/scripts/ensure_base_deps.py index a6f2daee..297ca70e 100755 --- a/.github/scripts/ensure_base_deps.py +++ b/.github/scripts/ensure_base_deps.py @@ -15,6 +15,7 @@ HOME, COMPILE_CONFIG, OS_NAME, + MAKE_RELEASE, ) @@ -32,29 +33,40 @@ def download_base_archive(base_name): return file_path -ARCHIVE_NAME_TEMPLATE = "base_deps_{os}_{config}_{version}.tar.gz" +def get_archive_name(): + ARCHIVE_NAME_TEMPLATE = "base_deps_{os}_{config}_{version}.tar.gz" -if COMPILE_CONFIG == "flatpak": - base_dep_archive_name = "base_deps_flatpak.tar.gz" -else: - base_dep_archive_name = ARCHIVE_NAME_TEMPLATE.format( + if COMPILE_CONFIG == "flatpak": + return "base_deps_flatpak.tar.gz" + + return ARCHIVE_NAME_TEMPLATE.format( os=OS_NAME, config=COMPILE_CONFIG, version=base_deps_meta_version, ) -print_message("Getting archive {}", base_dep_archive_name) -try: - local_filename = download_base_archive(base_dep_archive_name) - with tarfile.open(local_filename) as f: - f.extractall(str(HOME)) - os.remove(str(local_filename)) -except URLError: - if COMPILE_CONFIG == "flatpak": - print_message("Cannot get archive. Move on") + +def main(): + base_dep_archive_name = get_archive_name() + print_message("Getting archive {}", base_dep_archive_name) + try: + local_filename = download_base_archive(base_dep_archive_name) + with tarfile.open(local_filename) as f: + f.extractall(str(HOME)) + os.remove(str(local_filename)) + except URLError: + if COMPILE_CONFIG == "flatpak": + print_message("Cannot get archive. Move on") + else: + print_message("Cannot get archive. Build dependencies") + run_kiwix_build("alldependencies", config=COMPILE_CONFIG) + archive_file = make_deps_archive(name=base_dep_archive_name, full=True) + upload(archive_file, "ci@tmp.kiwix.org:30022", "/data/tmp/ci") + os.remove(str(archive_file)) + + +if __name__ == "__main__": + if MAKE_RELEASE: + print_message("We are building release. Don't download deps archive.") else: - print_message("Cannot get archive. Build dependencies") - run_kiwix_build("alldependencies", config=COMPILE_CONFIG) - archive_file = make_deps_archive(name=base_dep_archive_name, full=True) - upload(archive_file, "ci@tmp.kiwix.org:30022", "/data/tmp/ci") - os.remove(str(archive_file)) + main()