跳到主要内容

deploy

简介

为项目部署提供相关操作提供接口功能

组件接口

deploy.gs

函数原型函数作用
void main(function func)执行入口函数
bool quick_pack(Properties properties)通过配置快速打包
bool check_env(string package_json = nil)快速检查
bool deploy(string image_file, string host, string account = nil, string password = nil)部署
bool download_driver(string driver_version, string to_path, string param_p = "-p win32,redhat")快速下载driver
bool upload_driver(string driver_file, string driver_version, string host, string account = nil, string password = nil)快速上传driver
bool pack(mixed pack_list)快速打包
bool locate_command(string cmd)判断指定命令是否存在
bool run(string cmd_line)执行shell命令
string run_retrieve_stdout(string cmd_line)执行shell命令,并返回标准输出
void run_all(array cmd_lines, function func = nil)执行一组shell命令
void run_all_util_fail(array cmd_lines, function func = nil)执行所有的命令行直到其中一个失败
void wait_enter_key(string fmt, ...)提示并且等待用户按下回车键
mixed invoke_in_path(string path, function func)将当前工作路径设置到指定路径下,执行函数后还原工作路径
string git_branch()git:获取当前分支名称
string git_commit_id()git:获取当前commit id
bool git_lfs_require()git:判断是否安装lfs
string gip_version()gip:获取版本号
bool gip_require(string require_version)gip:判断gip版本是否满足要求
bool check_gip_version(string version, string require_version)gip:检查gip版本号是否符合要求
bool gip_install(string path, string extra_arg = nil)gip: 安装pkg
bool gip_update(string path, string extra_arg = nil)gip: 更新pkg
bool gip_driver(string path, string extra_arg = nil)gip: 下载driver
bool check_gs_version(string version, string require_version)gs:检查gs版本号是否符合要求
void drop_path(mixed pattern_or_arr)删除满足条件的路径以及其下的所有文件
void output_success(string fmt, ...)输出成功信息
void output_failure(string fmt, ...)输出失败信息
void output_prompt(string fmt, ...)输出提示信息
bool sync_pkgs(string package_json_file)同步所有pkg
bool update_pkgs(string package_json_file)更新所有pkg
bool sync_submodules(bool force_reset = false)git: 同步子模块
void setup()初始化

FDeploy.gs

部署相关操作的基础组件

函数原型函数作用
ProjectProperties get_properties()获取所有项目属性
void set_property(string key, mixed value)设置项目属性
mixed get_property(string key)获取项目属性
void gen_zip_start_scripts(string output_path)生成一组zip启动脚本(.bat/.sh/not_docker.sh/not_docker.bat)
void gen_partial_container_conf(string output_path)仅生成本镜像的容器配置
void gen_start_all_scripts(string output_path)生成非docker启动的一键启动脚本
void gen_container_conf(string output_path)收集并且合并所有镜像的配置生成容器配置
void add_src_and_obj(BuildContext context)添加源码和对象文件
void build_boot_plist(BuildContext context).boot_plist文件生成

CmdLine

命令行

成员变量

变量名类型初始值须初始化描述
cmd_linestringnil可选命令行文本

成员方法

函数原型函数作用
bool run()执行命令行
string run_retrieve_stdout()执行命令行,并获取stdout输出

DeployContext

部署环境

成员变量

变量名类型初始值须初始化描述
hoststringnil可选目标主机
accountstringnil可选账号
passwordstringnil可选密码
image_filestringnil可选镜像文件
image_namestringnil可选镜像名称(通过镜像文件获取)
driver_filestringnil可选driver文件路径
driver_namestringnil可选driver名称
driver_versionstringnil可选driver版本
driver_platformstringnil可选driver运行平台
token_timeoutint30可选获取部署令牌的超时时长(秒)
upload_timeoutint30可选上传文件超时时长(秒)
deploy_timeoutint30可选镜像部署超时时长(秒)
driver_upload_timeoutint30可选driver上传超时时长(秒)
tokenstringnil可选

成员方法

函数原型函数作用
bool take_token()获取部署令牌
void set_image_file(string image_file)设置镜像文件
bool upload_image()上传镜像
bool deploy_image()部署镜像
void set_driver_file(string driver_file, string driver_version, string driver_platform)设置driver文件
bool upload_driver()上传driver

PackContext

打包环境

成员变量

变量名类型初始值须初始化描述
driverstringnil可选driver文件路径(自动获取)
cmd_linesarraynil可选命令行列表

成员方法

函数原型函数作用
PackArgBuilder add_pack(mixed pack_arg)添加一个打包配置
bool pack(mixed pack_list_or_json_file)打包

PackArgBuilder

打包配置生成器

成员变量

变量名类型初始值须初始化描述
pack_argmapnil可选打包参数
zip_boot_confstringnil可选zip包启动配置.conf文件(可选)
require_rootstringnil可选打包时指定的根路径

成员方法

函数原型函数作用
PackArgBuilder new_from_template(map pack_arg)根据模板生成打包配置生成器
string to_pack_arg_text()生成打包的命令行文本
void add_macro(string macro)添加一个宏配置
void add_mount_point(string mount_point)添加一个挂载点配置
void set_boot_conf(string boot_conf)设置打包的启动配置
void absorb(map m)吸收打包配置

PkgPackArgBuilder

继承自 PackArgBuilder

打包PKG的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

AuthServerPackArgBuilder

继承自 PackArgBuilder

打包认证服务器(authserver)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

DataCorrectorPackArgBuilder

继承自 PackArgBuilder

打包数据修正工具(data_corrector)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

ListServerPackArgBuilder

继承自 PackArgBuilder

打包目录服务器(list_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

LogServerPackArgBuilder

继承自 PackArgBuilder

打包日志服务器(log_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

NotifyServerPackArgBuilder

继承自 PackArgBuilder

打包通知服务器(notify_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

RankServerPackArgBuilder

继承自 PackArgBuilder

打包排名服务器(rank_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

SocialServerPackArgBuilder

继承自 PackArgBuilder

打包社交服务器(social_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

SwordServerPackArgBuilder

继承自 PackArgBuilder

打包敏感词服务器(sword_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

WebgmServerPackArgBuilder

继承自 PackArgBuilder

打包后台管理系统(webgm_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

AgentServerPackArgBuilder

继承自 PackArgBuilder

打包用户代理服务器(agent_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

RoomServerPackArgBuilder

继承自 PackArgBuilder

打包房间服务器(room_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

GameServerPackArgBuilder

继承自 PackArgBuilder

打包游戏服务器(game_server)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

WatcherPackArgBuilder

继承自 PackArgBuilder

打包错误监控服务器(watcher)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

DeployManagerPackArgBuilder

继承自 PackArgBuilder

打包后台管理系统(deploy_manager)的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

BuildPackArgBuilder

继承自 PackArgBuilder

打包构建产品包的配置生成器

成员变量

变量名类型初始值须初始化描述

成员方法

函数原型函数作用

StartScript

shell启动脚本(.bat/.sh)生成器

成员变量

变量名类型初始值须初始化描述
output_pathstringnil可选输出路径
namestringnil可选启动脚本名称
file_namestringnil可选待生成的启动脚本文件名称
dockerboolfalse可选是不是用于在docker中运行的启动脚本(true - 是, false - 否)
batboolfalse可选是不是bat启动脚本(true - 是, false - 否)
binstringnil可选driver文件路径
template_filestringnil可选shell启动脚本的模板文件
boot_confstringnil可选用于生成启动脚本的.conf启动配置文件
launch_cmdstringnil可选shell启动命令行文本

成员方法

函数原型函数作用
void gen_start_scripts(string output_path, string name, string boot_conf)生成shell启动脚本
string get_pure_name()
string get_output_filename()
string output()生成shell启动脚本
string gen_content()生成shell启动脚本内容
string gen_arg_string()

AllStartScript

shell一键启动脚本(.bat/.sh)生成器

成员变量

变量名类型初始值须初始化描述
output_pathstringnil可选输出路径
namestringnil可选脚本名称
file_namestringnil可选脚本文件
template_filestringnil可选模板文件
scriptsarraynil可选一键启动脚本包含的子项shell启动脚本的匹配规则
batboolfalse可选是不是生成bat脚本(true - 是, false - 否)

成员方法

函数原型函数作用
void gen_start_scripts(string output_path, string name, string script_pattern)生成shell一键启动脚本
string get_launch_cmd(string script_file)
string gen_content()生成shell一键启动脚本内容
string get_output_filename()
string output()生成shell一键启动脚本

ContainerConfig

容器配置生成器

成员变量

变量名类型初始值须初始化描述
serversmapnil可选服务器信息表
launchesmapnil可选启动器配置表

成员方法

函数原型函数作用
void gen_partial_container_conf(string output_path, string name, string alias_name)生成指定名称的服务器容器信息
void gen_container_conf(string output_path, string output_filename, string partial_container_conf_dir)生成完整容器信息
void load_json(string filename)
void add_server_info(ContainerServerInfo server_info)
void add_launcher(ContainerLauncherInfo launcher_info)
map dump_data()

ContainerServerInfo

服务器容器信息

成员变量

变量名类型初始值须初始化描述
namestringnil可选名称
server_pathstringnil可选服务器目录

成员方法

函数原型函数作用
map dump_data()输出服务器容器信息

ContainerLauncherInfo

启动器容器信息

成员变量

变量名类型初始值须初始化描述
namestringnil可选名称
auto_bootbooltrue可选是不是自动启动(true - 是, false - 否,默认是true)
aliasstringnil可选别名
extra_argsarraynil可选其它参数

成员方法

函数原型函数作用
void load_data(map launcher_data)加载启动器容器信息
map dump_data()输出启动器容器信息

样例

public void pkg_sample()
{
deploy.main(() {
// 先看看有没有git
if (! locate_command("git"))
{
output_failure("missing git");
return -100;
}

// 再看看有没有gip
if (! locate_command("gip"))
{
output_failure("missing gip");
return -101;
}

// gip版本检查
if (! gip_require("1.8"))
{
output_failure("gip version is too old");
return -102;
}

// 处理成功返回0
return 0;
});
}