68 lines
1.7 KiB
Python
68 lines
1.7 KiB
Python
|
#!/usr/bin/python3
|
||
|
|
||
|
from gitea_actions_webscraper import GiteaActionsWebscraper
|
||
|
import config
|
||
|
import os
|
||
|
import sys
|
||
|
import time
|
||
|
import requests
|
||
|
import zipfile
|
||
|
import io
|
||
|
import shlex
|
||
|
|
||
|
arguments = ' '.join([shlex.quote(argv) for argv in sys.argv[2:]])
|
||
|
|
||
|
if os.system('git commit ' + arguments) != 0:
|
||
|
exit(1)
|
||
|
|
||
|
if os.system('git push') != 0:
|
||
|
exit(1)
|
||
|
|
||
|
with open('.git/refs/heads/master') as f:
|
||
|
lastCommit = f.read()[:-1]
|
||
|
|
||
|
# Isn't there already live updates on UI?
|
||
|
|
||
|
gitea_actions_webscraper = GiteaActionsWebscraper(config.instance, config.repository, config.i_like_gitea)
|
||
|
while True:
|
||
|
while True:
|
||
|
actions = gitea_actions_webscraper.getFirstActionsPage()
|
||
|
for action in actions:
|
||
|
if action.commitHash == lastCommit:
|
||
|
break
|
||
|
else:
|
||
|
print('Waiting to notice action creation')
|
||
|
time.sleep(1)
|
||
|
continue
|
||
|
break
|
||
|
if not action.state in ['Running', 'Waiting']:
|
||
|
print('Waiting action execution')
|
||
|
time.sleep(1)
|
||
|
break
|
||
|
|
||
|
print('Action state:', action.state)
|
||
|
if action.state == 'Failure':
|
||
|
messages = '\n'.join([stepLog['message'] for stepLog in actions[0].getStepLogs(9)])
|
||
|
print(messages)
|
||
|
exit(1)
|
||
|
|
||
|
if not sys.argv[1] in ['compile', 'compile_and_run']:
|
||
|
exit(0)
|
||
|
|
||
|
artifactFileName = 'LemnosLife_client_debug'
|
||
|
print(f'Downloaing artifact {artifactFileName}')
|
||
|
artifactUrl = action.getArtifactUrl(artifactFileName)
|
||
|
cookies = {
|
||
|
'i_like_gitea': config.i_like_gitea
|
||
|
}
|
||
|
|
||
|
artifactBytes = requests.get(artifactUrl, cookies = cookies).content
|
||
|
|
||
|
with zipfile.ZipFile(io.BytesIO(artifactBytes)) as z:
|
||
|
z.extractall()
|
||
|
|
||
|
if sys.argv[1] != 'compile_and_run':
|
||
|
exit(0)
|
||
|
|
||
|
os.system(f'./{artifactFileName}')
|