summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2019-01-13 18:13:29 +0100
committerAleks Kissinger <aleks0@gmail.com>2019-01-13 18:13:29 +0100
commitcfd6ae88b194d69d2a2c365d4a8a78644ba9079b (patch)
tree55fb550e78ee4da583a484f1129e798cce88e0dd /scripts
parentd49cde5d0b948f24aa7b3bd9ad9b3b63333f2281 (diff)
added github AUTO deploy scripts
Diffstat (limited to 'scripts')
-rw-r--r--scripts/gh-list.py11
-rw-r--r--scripts/gh-push.py30
-rw-r--r--scripts/gh.py29
3 files changed, 70 insertions, 0 deletions
diff --git a/scripts/gh-list.py b/scripts/gh-list.py
new file mode 100644
index 0000000..1966db4
--- /dev/null
+++ b/scripts/gh-list.py
@@ -0,0 +1,11 @@
+from gh import gh, pr
+import os
+
+tok = os.getenv('GITHUB_TOKEN')
+
+draft = [r for r in gh('releases')
+ if r['draft'] and r['name'] == 'AUTO'][0]
+
+for a in draft['assets']:
+ print(a['browser_download_url'] +
+ '?access_token=' + tok)
diff --git a/scripts/gh-push.py b/scripts/gh-push.py
new file mode 100644
index 0000000..3aedb15
--- /dev/null
+++ b/scripts/gh-push.py
@@ -0,0 +1,30 @@
+import sys, re
+from gh import gh, get_release
+
+if len(sys.argv) != 2:
+ print("Usage: python gh-push.py FILENAME")
+ sys.exit(1)
+
+f = sys.argv[1]
+
+print('Pulling info on release AUTO.')
+draft = get_release('AUTO')
+
+existing = [a for a in draft['assets'] if a['name'] == f]
+if (len(existing) > 0):
+ print('Asset exists, deleting.')
+ gh('releases/assets/' + str(existing[0]['id']),
+ ['-X', 'DELETE'])
+
+print('Uploading new asset...')
+
+upload_url = re.sub(
+ '\\{.*\\}', '?name=' + f,
+ draft['upload_url'])
+
+resp = gh(upload_url, [
+ '-H', 'Content-type: application/octet-stream',
+ '--data-binary', f
+ ])
+
+print('Done.')
diff --git a/scripts/gh.py b/scripts/gh.py
new file mode 100644
index 0000000..13a8880
--- /dev/null
+++ b/scripts/gh.py
@@ -0,0 +1,29 @@
+import sys, os, json
+from subprocess import Popen, PIPE
+
+api_url = 'https://api.github.com/repos/tikzit/tikzit'
+
+tok = os.getenv('GITHUB_TOKEN', '')
+
+if tok == '':
+ print("Must set GITHUB_TOKEN environment variable.")
+ sys.exit(1)
+
+# pretty-print JSON responses
+def pr(j): print(json.dumps(j, indent=2))
+
+# call GitHub API with curl
+def gh(s, args=[]):
+ cmd = (["curl", "-s"] + args +
+ ["-H", "Authorization: token " + tok] +
+ [s if 'https://' in s else api_url + '/' + s])
+ # ONLY UN-COMMENT FOR TESTING:
+ # print(' '.join(cmd))
+ p = Popen(cmd, stdout=PIPE)
+ resp = p.stdout.read()
+ return json.loads(resp if resp else '{}')
+
+def get_release(n):
+ rs = [r for r in gh('releases') if r['name'] == n]
+ if len(rs) > 0: return rs[0]
+ else: return None