mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 08:24:05 +02:00
45 lines
1.3 KiB
Python
Executable File
45 lines
1.3 KiB
Python
Executable File
#!/bin/python3 -u
|
|
|
|
import time
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
INTERVAL_DELAY = 300
|
|
ERROR_DELAY = 60
|
|
|
|
def main():
|
|
dry_run = "--dry-run" in sys.argv
|
|
|
|
deployed_commit_hash = ""
|
|
while True:
|
|
print("fetching newest commit...")
|
|
|
|
newest_commit_hash = os.popen("curl -s https://api.github.com/repos/Mercantec-GHC/h4-projekt-gruppe-0-sm/commits/main | jq -r .sha").read()
|
|
|
|
if not newest_commit_hash or newest_commit_hash == "null":
|
|
print("error: could not fetch commit hash", file=sys.stderr)
|
|
print(f"trying again in {ERROR_DELAY} seconds...", file=sys.stderr)
|
|
time.sleep(ERROR_DELAY)
|
|
continue
|
|
|
|
if newest_commit_hash != deployed_commit_hash:
|
|
deployed_commit_hash = newest_commit_hash
|
|
print("new commit found. redeploying...")
|
|
|
|
if not dry_run:
|
|
rcode = subprocess.call(["sh", "./deploy/redeploy_as_root.sh"])
|
|
if rcode == 0:
|
|
print("redeployed successfully")
|
|
else:
|
|
print("error: could not redeploy", file=sys.stderr)
|
|
else:
|
|
print("no new commits")
|
|
|
|
print(f"sleeping for {INTERVAL_DELAY} seconds...")
|
|
time.sleep(INTERVAL_DELAY)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|