diff options
author | jaseg <git@jaseg.de> | 2021-08-15 13:30:27 +0200 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2021-08-15 13:30:27 +0200 |
commit | fe92b473b8087cb7ead693810ed7615814e7eaf9 (patch) | |
tree | 68b42d7c3412d27118f82cc5bfd0e58ce687ab96 | |
parent | 3c6c8e9edcca0c88555823e03e47704ac05dc12c (diff) | |
download | blog-fe92b473b8087cb7ead693810ed7615814e7eaf9.tar.gz blog-fe92b473b8087cb7ead693810ed7615814e7eaf9.tar.bz2 blog-fe92b473b8087cb7ead693810ed7615814e7eaf9.zip |
Add deploy.py
-rw-r--r-- | deploy.py | 24 |
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) |