Add deploy.py
This commit is contained in:
parent
3c6c8e9edc
commit
fe92b473b8
1 changed files with 24 additions and 0 deletions
24
deploy.py
Normal file
24
deploy.py
Normal file
|
|
@ -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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue