mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-18 14:34:24 +02:00
Moved build before validation, because otherwise it will fail
This commit is contained in:
parent
338b09b755
commit
5adcc5b931
@ -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__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user