Moved build before validation, because otherwise it will fail

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-09 16:23:58 +02:00
parent 338b09b755
commit 5adcc5b931
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E

View File

@ -7,13 +7,27 @@ import datetime
import sys import sys
def run_ansible_playbook(inventory, playbook, modes, limit=None, allowed_applications=None, password_file=None, verbose=0, skip_tests=False): def run_ansible_playbook(inventory, modes, limit=None, allowed_applications=None, password_file=None, verbose=0, skip_tests=False, skip_validation=False):
start_time = datetime.datetime.now() start_time = datetime.datetime.now()
print(f"\n▶️ Script started at: {start_time.isoformat()}\n") print(f"\n▶️ Script started at: {start_time.isoformat()}\n")
print("\n🛠️ Building project (make build)...\n") print("\n🛠️ Building project (make build)...\n")
subprocess.run(["make", "build"], check=True) subprocess.run(["make", "build"], check=True)
script_dir = os.path.dirname(os.path.realpath(__file__))
playbook = os.path.join(os.path.dirname(script_dir), "playbook.yml")
if not skip_validation:
print("\n🔍 Validating inventory before deployment...\n")
try:
subprocess.run(
[sys.executable, os.path.join(script_dir, "validate_inventory.py"), os.path.dirname(inventory)],
check=True
)
except subprocess.CalledProcessError:
print("\n❌ Inventory validation failed. Deployment aborted.\n", file=sys.stderr)
sys.exit(1)
if not skip_tests: if not skip_tests:
print("\n🧪 Running tests (make test)...\n") print("\n🧪 Running tests (make test)...\n")
subprocess.run(["make", "test"], check=True) subprocess.run(["make", "test"], check=True)
@ -52,7 +66,6 @@ def run_ansible_playbook(inventory, playbook, modes, limit=None, allowed_applica
def main(): def main():
script_dir = os.path.dirname(os.path.realpath(__file__))
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description="Run the central Ansible deployment script to manage infrastructure, updates, and tests." description="Run the central Ansible deployment script to manage infrastructure, updates, and tests."
) )
@ -120,17 +133,6 @@ def main():
args = parser.parse_args() args = parser.parse_args()
if not args.skip_validation:
print("\n🔍 Validating inventory before deployment...\n")
try:
subprocess.run(
[sys.executable, os.path.join(script_dir, "validate_inventory.py"), os.path.dirname(args.inventory)],
check=True
)
except subprocess.CalledProcessError:
print("\n❌ Inventory validation failed. Deployment aborted.\n", file=sys.stderr)
sys.exit(1)
modes = { modes = {
"mode_reset": args.reset, "mode_reset": args.reset,
"mode_test": args.test, "mode_test": args.test,
@ -141,17 +143,16 @@ def main():
"host_type": args.host_type "host_type": args.host_type
} }
playbook_file = os.path.join(os.path.dirname(script_dir), "playbook.yml")
run_ansible_playbook( run_ansible_playbook(
inventory=args.inventory, inventory=args.inventory,
playbook=playbook_file,
modes=modes, modes=modes,
limit=args.limit, limit=args.limit,
allowed_applications=args.id, allowed_applications=args.id,
password_file=args.password_file, password_file=args.password_file,
verbose=args.verbose, verbose=args.verbose,
skip_tests=args.skip_tests skip_tests=args.skip_tests,
skip_validation=args.skip_validation
) )
if __name__ == "__main__": if __name__ == "__main__":