mirror of https://github.com/axmolengine/axmol.git
130 lines
3.8 KiB
Python
130 lines
3.8 KiB
Python
#Cocos2D-X templates daily build scripts
|
|
|
|
import os
|
|
import sys
|
|
import traceback
|
|
|
|
# for local debugging purpose, you could change the value to 0 and run
|
|
# this scripts in your local machine
|
|
remote_build = 1
|
|
|
|
if('branch' in os.environ):
|
|
branch = os.environ['branch']
|
|
else:
|
|
branch = 'v4-develop'
|
|
|
|
if('WORKSPACE' in os.environ):
|
|
workspace = os.environ['WORKSPACE']
|
|
else:
|
|
workspace = "."
|
|
|
|
if('NODE_NAME' in os.environ):
|
|
node_name = os.environ['NODE_NAME']
|
|
else:
|
|
node_name = 'mac'
|
|
|
|
if('build_mode' in os.environ):
|
|
build_mode = os.environ['build_mode']
|
|
else:
|
|
build_mode = "debug"
|
|
|
|
#valide build_type are 'template' and 'runtime'
|
|
if('build_type' in os.environ):
|
|
build_type = os.environ['build_type']
|
|
else:
|
|
build_type = 'template'
|
|
|
|
default_templates_types = ["cpp", "lua", "js"]
|
|
runtime_templates_types = ["lua", "js"]
|
|
default_templates_names = ["test_cpp", "test_lua", "test_js"]
|
|
runtime_template_names = ["test_rt_lua", "test_rt_js"]
|
|
|
|
def do_clean_up():
|
|
for name in default_templates_names:
|
|
commands = 'rm -rf ' + name
|
|
os.system(commands)
|
|
for name in runtime_template_names:
|
|
commands = 'rm -rf ' + name
|
|
os.system(commands)
|
|
|
|
|
|
def build_templates(mode, templates, is_runtime):
|
|
ret = 0
|
|
if(branch == 'v3' or branch == 'v4-develop'):
|
|
do_clean_up()
|
|
test_project_prefix = " test_"
|
|
if is_runtime:
|
|
test_project_prefix = " test_rt_"
|
|
|
|
#build for default templates
|
|
for type in templates:
|
|
#create project
|
|
create_project_commands = "cocos new -l " + type
|
|
if is_runtime:
|
|
create_project_commands += " -t runtime " + test_project_prefix + type
|
|
else:
|
|
create_project_commands += test_project_prefix + type
|
|
create_ret = os.system(create_project_commands)
|
|
|
|
#create project failed
|
|
if create_ret != 0:
|
|
return 1
|
|
|
|
ret += create_ret
|
|
#compile
|
|
compile_project_commands = "cocos compile -p " + node_name + " -s " + test_project_prefix + type + " --compile-script 0"
|
|
build_mode_args = " -m "
|
|
if node_name == "android":
|
|
build_mode_args = " --ndk-mode "
|
|
build_mode_args += mode
|
|
|
|
if node_name == "windows-universal":
|
|
#run wp8.1 and windows 8.1
|
|
# lua & js don't have runtime template
|
|
if is_runtime:
|
|
continue
|
|
wp_ret = os.system("cocos compile -p wp8_1 " + build_mode_args + " -s " + test_project_prefix + type + " --compile-script 0")
|
|
winrt_ret = os.system("cocos compile -p metro " + build_mode_args + " -s " + test_project_prefix + type + " --compile-script 0")
|
|
ret += wp_ret
|
|
ret += winrt_ret
|
|
else:
|
|
if node_name == "android":
|
|
compile_project_commands += " --app-abi armeabi:armeabi-v7a:x86 "
|
|
if node_name == "linux" and is_runtime:
|
|
continue
|
|
compile_ret = os.system(compile_project_commands + build_mode_args)
|
|
ret += compile_ret
|
|
|
|
return ret
|
|
|
|
|
|
def main():
|
|
#start build jobs on each slave
|
|
default_build_type = default_templates_types
|
|
default_flag = False
|
|
if build_type == "runtime":
|
|
default_build_type = runtime_templates_types
|
|
default_flag = True
|
|
ret = build_templates(build_mode, default_build_type, default_flag)
|
|
|
|
print "build finished and return " + str(ret)
|
|
|
|
exit_code = 1
|
|
if ret == 0:
|
|
exit_code = 0
|
|
else:
|
|
exit_code = 1
|
|
|
|
return(exit_code)
|
|
|
|
# -------------- main --------------
|
|
if __name__ == '__main__':
|
|
sys_ret = 0
|
|
try:
|
|
sys_ret = main()
|
|
except:
|
|
traceback.print_exc()
|
|
sys_ret = 1
|
|
finally:
|
|
sys.exit(sys_ret)
|