Jenkins流水线 ssh-agent执行远端代码

[TOC] 个人很反对在Jenkins窗口里写构建代码,原因是这样做不能对代码做版本管理。但将构建代码做到版本管理后,也产生了另外的问题,在提交代码与Jenkins之前来回切换调试构建流程,这过程可谓非常繁琐!!幸亏流水线的出现的出现,解决了这两个痛点。 本文主要介绍ssh-agent在流水线中的运用。鉴于ssh-agent插件主页的操作说明不够详细,本人在配置时遇到一些问题,如不知从哪里配置Jenkins凭据ID、在远端执行指令无效。如果没了解过Jenkins流水线脚本化代码,建议先简单阅读一下官网说明 配置ssh免密登录 ssh-agent插件实际是套用ssh登录,所以让ssh-agent正常工作必须先要配置好ssh环境。配置环境并不复杂且网上有大量可查资料,此处不再另述,...
Click to read more ...

整理常用linux命令

纯以记录为目的,以便日后翻查或者重新理解命令使用方法 linux 日志收集 在用grep筛选日志,上下相邻的几条日志会有可能对当时排查问题有另外的提示作用 选荐-n显示日志的行号,观察该行号附近的日志分析问题,如显示每条error的行号 grep -n "error" FILE_PATH 选项-A、-B和-C分别可向下、向上和同时上下,额外显示N行日志。如在error日志行上下再显示5行日志 grep -C5 "error" FILE_PATH grep多条件筛选日志 与逻辑,如下搜索包含ERROR与指定角色123456的行 grep "error.*role_id:12...
Click to read more ...

数值程序化 lua中的load运用

[TOC] 数值条件 以下是游戏中常见条件达到逻辑 收集X个Y道具 角色达到Y级开启 任意一个装备升级到Y品质 … 如何在策划配置表中,定义以上规则?常见的办法就是预先定义事件类型X和事件值Y,代码中监听事件X,根据事件的具体逻辑计算相关当前值与事件Y比较,以得出是否满足配置项的条件。 目标类型 说明 1 获得道具 2 角色当前等级 3 升级装备 配置数值 说明 {1, X...
Click to read more ...

lua代码规范

[TOC] 命名 小写蛇形命名 文件和目录名 本地变量,全局变量g_开头 local my_var = 0 g_my_var = 0 大写蛇形命名 全局常量,以G_开头 G_SERVER_ID = 1 全局枚举,以E_开头且_TYPE结尾 E_SERVER_TYPE = { LOGIN = 1, GAME = 2, GLOBAL = 3, } 排版 在逗号之后添加一个空格 -- bad local t = {1,2,3} -- good lcoal t = {1, 2, 3} 在运算符、赋值符和连接符前后各添加...
Click to read more ...

搭建centos基础开发环境的一些考虑

或许会有疑问,只要项目工程预编译好二进制文件,checkout下来就能跑了,几乎不需要再给centos安装些什么环境!因为开发过程还可能需要ssh远程,设置账号权限,设置网络端口规则,崩溃调试和性能采集等。作为技术人员可以很轻松地完成这些工作,但实际情况是非技术人员也有可能要搭自己的本地运行环境,尽管提供了搭建文档,但对他们来讲处理这些并不容易。 考虑各个项目的代码框架各有差异。此处不会涉及广泛的内容,仅以C/C++游戏后端开发基于Window主机+centos客机的搭建模式,其中只安装了必备的一些工具,你可能需要根据项目框架的实际情况另行安装。 开发环境配置的基础认知: 搭建本地运行环境有很好的隔离作用。使用项目任务得以尽可能并行开发而互不干扰。技术同事有着各自的前端/后...
Click to read more ...

计算平均值,复杂度O(1)

公会对象按以下形式缓存了所有成员的最新等级iLevel,要求实时刷新公会成员的【平均等级】,成员最多200人。 tMemberMap = { [角色ID1} = {iLevel=1, sPlayerName="xxx", ... } [角色ID2} = {iLevel=2, sPlayerName="xxx2", ... } ... } 当成员加入或离开公会或角色升级,触发重刷平均等级,简单的做法是遍历tMemberMap计算出【等级总和】,后除以【成员人数】。 公会成员最多只有200人,这样的做法绝对不会有性能问题。但这里我想发散一下,如果是海量数据呢?或者没有缓存信息tMemberMap呢? 我分析了一下,还是依据公式【平均等级】=【等级总和】/【成...
Click to read more ...

排行榜-排序

以下是lua版本二分插入排序 -- lua实现 function binary_insert(list, value)     local left = 1     local right = #list     local mid = -1     while left <= right do         mid = math.floor((left + right)/2)         if list[i] == value then             left = mid             right = mid             break         elseif list[i] < value then             lef...
Click to read more ...