From fe92b473b8087cb7ead693810ed7615814e7eaf9 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 15 Aug 2021 13:30:27 +0200 Subject: Add deploy.py --- deploy.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 deploy.py diff --git a/deploy.py b/deploy.py new file mode 100644 index 0000000..23edc18 --- /dev/null +++ b/deploy.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 + +import tempfile +import subprocess +from pathlib import Path + +if __name__ == '__main__': + with tempfile.TemporaryDirectory() as tmpdir: + + current_branch = subprocess.run(['git', 'symbolic-ref', '-q', 'HEAD'], check=False, capture_output=True).stdout.strip() + if current_branch == 'refs/heads/deploy': + raise SystemError('This script cannot be run from the deploy branch (run from main instead)') + + subprocess.run(['git', 'worktree', 'add', '--detach', tmpdir], check=True) + try: + subprocess.run(['hugo'], cwd=tmpdir, check=True) + write_tree = subprocess.run(['git', 'write-tree', '--prefix=public/'], check=True, capture_output=True) + tree = write_tree.stdout.strip() + + commit = subprocess.run(['git', 'commit-tree', '-p', 'HEAD', '-p', 'refs/heads/deploy', '-m', 'deploy.py auto-commit', tree], check=True, capture_output=True).stdout.strip() + subprocess.run(['git', 'update-ref', '-m', f'deploy.sh update deploy branch to {commit}', 'refs/heads/deploy', commit], check=True) + + finally: + subprocess.run(['git', 'worktree', 'remove', '-f', tmpdir], check=True) -- cgit