summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2021-08-15 13:30:27 +0200
committerjaseg <git@jaseg.de>2021-08-15 13:30:27 +0200
commitfe92b473b8087cb7ead693810ed7615814e7eaf9 (patch)
tree68b42d7c3412d27118f82cc5bfd0e58ce687ab96
parent3c6c8e9edcca0c88555823e03e47704ac05dc12c (diff)
downloadblog-fe92b473b8087cb7ead693810ed7615814e7eaf9.tar.gz
blog-fe92b473b8087cb7ead693810ed7615814e7eaf9.tar.bz2
blog-fe92b473b8087cb7ead693810ed7615814e7eaf9.zip
Add deploy.py
-rw-r--r--deploy.py24
1 files changed, 24 insertions, 0 deletions
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)