diff --git a/.github/workflows/import_packages.yml b/.github/workflows/import_packages.yml index 62685eec..0d443b67 100644 --- a/.github/workflows/import_packages.yml +++ b/.github/workflows/import_packages.yml @@ -54,11 +54,13 @@ jobs: run: | export PYTHONPATH=$PYTHONPATH:./ export BACKUP_FILESYSTEM_PATH=/tmp/backup_weaviate/ + export BACKUP_FOLDER=backup # Conditionally export the variables only if artifact download is enabled if [ "${{ github.event.inputs.enable_artifact_download }}" == "true" ]; then - export BACKUP_FOLDER=backup - fi - python scripts/import_packages.py + python scripts/import_packages.py + else + python scripts/import_packages.py --restore_backup False + fi - name: 'Upload Backup Files' uses: actions/upload-artifact@v4 diff --git a/scripts/import_packages.py b/scripts/import_packages.py index fd3b578a..ba3051c1 100644 --- a/scripts/import_packages.py +++ b/scripts/import_packages.py @@ -2,6 +2,7 @@ import json import os import shutil +import argparse import weaviate @@ -14,7 +15,10 @@ class PackageImporter: - def __init__(self): + def __init__(self, take_backup=True, restore_backup=True): + self.take_backup_flag = take_backup + self.restore_backup_flag = restore_backup + self.client = weaviate.WeaviateClient( embedded_options=EmbeddedOptions( persistence_data_path="./weaviate_data", @@ -120,14 +124,34 @@ async def add_data(self): ) async def run_import(self): - self.restore_backup() + if self.restore_backup_flag: + self.restore_backup() self.setup_schema() await self.add_data() - self.take_backup() + if self.take_backup_flag: + self.take_backup() if __name__ == "__main__": - importer = PackageImporter() + parser = argparse.ArgumentParser( + description="Run the package importer with optional backup flags.") + parser.add_argument( + "--take-backup", + type=lambda x: x.lower() == "true", + default=True, + help="Specify whether to take a backup after " + "data import (True or False). Default is True.", + ) + parser.add_argument( + "--restore-backup", + type=lambda x: x.lower() == "true", + default=True, + help="Specify whether to restore a backup before " + "data import (True or False). Default is True.", + ) + args = parser.parse_args() + + importer = PackageImporter(take_backup=args.take_backup, restore_backup=args.restore_backup) asyncio.run(importer.run_import()) try: assert importer.client.is_live()