QuasarAppCI/BuildBotLib/asssetsinstaller.py

90 lines
1.8 KiB
Python
Raw Normal View History

2019-12-13 16:09:43 +03:00
# This Python file uses the following encoding: utf-8
import BuildBotLib.basemodule as base
from buildbot.plugins import util, steps
import os
import shutil
2019-12-13 17:46:43 +03:00
import subprocess
2019-12-13 16:09:43 +03:00
2019-12-13 17:05:49 +03:00
LAST_FORMAT = [""]
2019-12-13 16:09:43 +03:00
@util.renderer
def NDKDownloadCMD(props):
2019-12-13 17:46:43 +03:00
link = props.getProperty("link")
2019-12-13 16:09:43 +03:00
module = props.getProperty("module")
2019-12-13 16:32:18 +03:00
if os.path.isfile(module):
shutil.rmtree(module)
2019-12-13 16:09:43 +03:00
res = []
2019-12-13 17:00:59 +03:00
format = link[link.rfind('.'):].lower()
2019-12-13 17:05:49 +03:00
LAST_FORMAT[0] = format
2019-12-13 16:09:43 +03:00
if module == "AndroidNDK":
2019-12-13 16:44:16 +03:00
if os.path.isfile(module):
os.remove("temp" + format)
2019-12-13 16:42:47 +03:00
res = ["curl", link, "--output", "temp" + format]
2019-12-13 16:37:22 +03:00
2019-12-13 16:09:43 +03:00
return res
@util.renderer
def ExtractCMD(props):
2019-12-13 17:05:49 +03:00
format = LAST_FORMAT[0]
2019-12-13 16:09:43 +03:00
module = props.getProperty("module")
2019-12-13 16:39:15 +03:00
res = ["echo", "format '" + format + "' not supported"]
2019-12-13 16:09:43 +03:00
2019-12-13 16:48:52 +03:00
if format == ".zip":
2019-12-13 17:15:39 +03:00
res = ["unzip", "temp" + format, "-d", module]
2019-12-13 16:39:15 +03:00
2019-12-13 17:53:24 +03:00
all_subdirs = base.allSubdirsOf("./" + module)
2019-12-13 17:46:43 +03:00
latest_subdir = max(all_subdirs, key=os.path.getmtime)
2019-12-13 17:53:24 +03:00
subprocess.getoutput(["ln -sf " + latest_subdir + " ./current"])
2019-12-13 17:46:43 +03:00
2019-12-13 16:09:43 +03:00
return res
def getFactory():
2019-12-13 17:46:43 +03:00
factory = base.getFactory()
2019-12-13 16:09:43 +03:00
factory.addStep(
2019-12-13 17:46:43 +03:00
steps.ShellCommand(
command=NDKDownloadCMD,
name='download new item',
description='download new item',
2019-12-13 16:09:43 +03:00
)
2019-12-13 17:46:43 +03:00
)
2019-12-13 16:09:43 +03:00
factory.addStep(
2019-12-13 17:46:43 +03:00
steps.ShellCommand(
command=ExtractCMD,
name='extract new item',
description='extract new item',
2019-12-13 16:09:43 +03:00
)
2019-12-13 17:46:43 +03:00
)
2019-12-13 16:09:43 +03:00
return factory
def getRepo():
2019-12-13 17:46:43 +03:00
return ""
2019-12-13 16:09:43 +03:00
def getPropertyes():
return [
util.ChoiceStringParameter(
2019-12-13 17:46:43 +03:00
name='module',
2019-12-13 16:09:43 +03:00
choices=["AndroidNDK", "AndroidSDK"],
2019-12-13 17:46:43 +03:00
default="AndroidNDK"
),
util.StringParameter(
name='link',
label="url to download item",
default=""
2019-12-13 16:09:43 +03:00
),
]