mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add deploy script
This commit is contained in:
parent
24505f59e1
commit
6d44889292
101
tools/deploy.py
Executable file
101
tools/deploy.py
Executable file
@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
####################################
|
||||
# ACE3 automatic deployment script #
|
||||
# ================================ #
|
||||
# This is not meant to be run #
|
||||
# directly! #
|
||||
####################################
|
||||
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import traceback
|
||||
import subprocess as sp
|
||||
from pygithub3 import Github
|
||||
|
||||
|
||||
TRANSLATIONISSUE = 367
|
||||
TRANSLATIONBODY = """**How to translate ACE3:**
|
||||
https://github.com/acemod/ACE3/blob/master/documentation/development/how-to-translate-ace3.md
|
||||
|
||||
{}
|
||||
"""
|
||||
|
||||
REPOUSER = "acemod"
|
||||
REPONAME = "ACE3"
|
||||
REPOPATH = "{}/{}".format(REPOUSER,REPONAME)
|
||||
|
||||
USERNAME = "ACE3 Travis"
|
||||
USEREMAIL = "travis@ace3mod.com"
|
||||
|
||||
|
||||
def update_translations(token):
|
||||
diag = sp.check_output(["python3", "tools/stringtablediag.py", "--markdown"])
|
||||
diag = str(diag, "utf-8")
|
||||
repo = Github(token).get_repo(REPOPATH)
|
||||
issue = repo.get_issue(TRANSLATIONISSUE)
|
||||
issue.edit(body=TRANSLATIONBODY.format(diag))
|
||||
|
||||
|
||||
def deploy_documentation(token):
|
||||
devnull = open(os.devnull, "w")
|
||||
url = "https://{}@github.com/{}".format(token, REPOPATH)
|
||||
|
||||
sp.check_call(["git", "clone", url, "out", "--depth", "10", "--branch", "gh-pages"], stdout=devnull, stderr=devnull)
|
||||
os.chdir("out")
|
||||
|
||||
sp.check_call(["git", "config", "user.name", USERNAME])
|
||||
sp.check_call(["git", "config", "user.email", USEREMAIL])
|
||||
|
||||
for root, dirs, files in os.walk("../documentation", topdown=False):
|
||||
target = root.replace("../documentation", "wiki")
|
||||
if root == "../documentation":
|
||||
continue
|
||||
for name in files:
|
||||
print("{} => {}".format(os.path.join(root, name), os.path.join(target, name)))
|
||||
shutil.copyfile(os.path.join(root, name), os.path.join(target, name))
|
||||
|
||||
sp.check_call(["git", "add", "--all", "."])
|
||||
sp.check_call(["git", "commit", "-m", "Automatic gh-pages deployment"])
|
||||
sp.check_call(["git", "push", "origin", "gh-pages"], stdout=devnull, stderr=devnull)
|
||||
|
||||
os.chdir("..")
|
||||
|
||||
|
||||
def main():
|
||||
print("Obtaining token ...")
|
||||
try:
|
||||
token = os.environ["GH_TOKEN"]
|
||||
except:
|
||||
print("Could not obtain token.")
|
||||
print(traceback.format_exc())
|
||||
return 1
|
||||
else:
|
||||
print("done.")
|
||||
|
||||
print("\nUpdating translation issue ...")
|
||||
try:
|
||||
update_translations(token)
|
||||
except:
|
||||
print("Failed to update translation issue.")
|
||||
print(traceback.format_exc())
|
||||
return 1
|
||||
else:
|
||||
print("done.")
|
||||
|
||||
print("\nDeploying documentation ...")
|
||||
try:
|
||||
deploy_documentation(token)
|
||||
except:
|
||||
print("Failed to deploy documentation.")
|
||||
print(traceback.format_exc())
|
||||
return 1
|
||||
else:
|
||||
print("done.")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
Loading…
Reference in New Issue
Block a user