mirror of
https://github.com/YunoHost/tartiflette.git
synced 2024-09-03 20:06:08 +02:00
Adding appci stuff
This commit is contained in:
parent
16fe5a3416
commit
497b2d13f0
5 changed files with 110 additions and 2 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,5 +1,6 @@
|
||||||
data/*.json
|
data/*.json
|
||||||
www
|
www
|
||||||
token
|
token
|
||||||
pullrequests/data/*.json
|
pullrequests/data/
|
||||||
roadmap/data/*.xml
|
roadmap/data/
|
||||||
|
appci/data/
|
||||||
|
|
43
appci/analyze.py
Normal file
43
appci/analyze.py
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
import json
|
||||||
|
import glob
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
|
||||||
|
apps = []
|
||||||
|
|
||||||
|
for f in glob.glob("data/*"):
|
||||||
|
|
||||||
|
app = f.replace("data/","")
|
||||||
|
appdata = open(f).read().strip()
|
||||||
|
|
||||||
|
if appdata == "":
|
||||||
|
continue
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
data["name"] = app
|
||||||
|
data["statuses"] = []
|
||||||
|
|
||||||
|
applevel = appdata.split("\n")[1][0]
|
||||||
|
appdata = appdata.split("\n")[0]
|
||||||
|
data["level"] = applevel
|
||||||
|
|
||||||
|
for c in appdata:
|
||||||
|
if c == "0":
|
||||||
|
s = "danger"
|
||||||
|
elif c == "1":
|
||||||
|
s = "success"
|
||||||
|
else:
|
||||||
|
s = "unknown"
|
||||||
|
|
||||||
|
data["statuses"].append(s)
|
||||||
|
|
||||||
|
apps.append(data)
|
||||||
|
|
||||||
|
apps.sort(key=lambda a: a["level"], reverse=True)
|
||||||
|
|
||||||
|
with open("apps.json", "w") as f:
|
||||||
|
json.dump(apps, f)
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
0
appci/data/.gitkeep
Normal file
0
appci/data/.gitkeep
Normal file
15
appci/fetch.sh
Normal file
15
appci/fetch.sh
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
|
||||||
|
while read APP;
|
||||||
|
do
|
||||||
|
APPNAME=$(echo $APP | awk '{print $1}')
|
||||||
|
echo $APPNAME
|
||||||
|
wget -O data/$APPNAME "https://ci-apps.yunohost.org/jenkins/job/$APP/lastBuild/consoleText"
|
||||||
|
|
||||||
|
CHECKS=$(cat data/$APPNAME | grep "Package linter:" -A15 | tail -n 16 | sed -e 's/FAIL/0/g' -e 's/SUCCESS/1/g' -e 's/Not evaluated./X/' | awk '{print $NF}' | tr -d '\n')
|
||||||
|
LEVELS=$(cat data/$APPNAME | grep 'Level of this application' -A10 | tail -n 11 | sed -e 's@N/A@X@g' -e 's/ Level //g' -e 's/Level of this application//g' | awk '{print $2}' | tr -d '\n')
|
||||||
|
|
||||||
|
echo $CHECKS > data/$APPNAME
|
||||||
|
echo $LEVELS >> data/$APPNAME
|
||||||
|
|
||||||
|
done < apps
|
||||||
|
|
49
appci/publish.py
Executable file
49
appci/publish.py
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
|
||||||
|
from jinja2 import Template
|
||||||
|
from ansi2html import Ansi2HTMLConverter
|
||||||
|
from ansi2html.style import get_styles
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
output_dir = "../www/"
|
||||||
|
|
||||||
|
template_path = os.path.join(output_dir,"template_appci.html")
|
||||||
|
output_path = os.path.join(output_dir,"appci.html")
|
||||||
|
|
||||||
|
summary_path = os.path.join("./", "summary.json")
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
conv = Ansi2HTMLConverter()
|
||||||
|
shell_css = "\n".join(map(str, get_styles(conv.dark_bg, conv.scheme)))
|
||||||
|
|
||||||
|
def shell_to_html(shell):
|
||||||
|
return conv.convert(shell, False)
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
# Fetch the list of all reports, sorted in reverse-chronological order
|
||||||
|
|
||||||
|
#summary = json.load(open(summary_path))
|
||||||
|
|
||||||
|
|
||||||
|
summary = { "testnames" : ["Package linter","Installation","Deleting","Installation in a sub path","Deleting from a sub path","Installation on the root","Deleting from root","Upgrade","Installation in private mode","Installation in public mode","Multi-instance installations","Malformed path","Port already used","Backup","Restore","Change URL"]}
|
||||||
|
|
||||||
|
summary["apps"] = json.loads(open("apps.json").read())
|
||||||
|
|
||||||
|
# Generate the output using the template
|
||||||
|
|
||||||
|
template = open(template_path, "r").read()
|
||||||
|
t = Template(template)
|
||||||
|
|
||||||
|
result = t.render(data=summary, convert=shell_to_html, shell_css=shell_css)
|
||||||
|
|
||||||
|
open(output_path, "w").write(result)
|
||||||
|
|
||||||
|
print("Done.")
|
Loading…
Reference in a new issue