Jenkins

部署了个Jenkins来自动化打包。

目标机是Windows10,平时可能还要用,所以我选择在上面装Linux子系统,装了个Ubuntu。Jenkins装在了Ubuntu中,要编译的服务器代码在Windows的C盘目录下。我以为Linux子系统不能访问Windows目录,没想到可以,目录是/mnt/c/

安装

https://www.jenkins.io/download/ 下载对应的软件包安装。

它安装后就已经加到自启动目录了,使用以下命令来启动Jenkins服务。

sudo service jenkins start

之后就能在网页上访问了。默认地址是http://localhost:8080/

新建任务

输入名称后点ok。

添加了两个构建步骤。

构建步骤1

源码管理这块,我本来想用svn的,但是后来发现,不对劲。源码目录在Windows上,并不能更新工作区目录以上的目录。所以我新建了个脚本。

cd /mnt/c/<项目位置>
sudo svn update --username your_username --password your_password

需要注意的是,Jenkins并没有sudo权限,执行脚本会出错。提示需要输入密码。错误如下:

...
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
sudo: a password is required
Build step 'Execute shell' marked build as failure
Finished: FAILURE

此时需要

sudo chmod u+w /etc/sudoers
sudo vim /etc/sudoers

之后在打开的文件中添加一句

jenkins ALL=(ALL) NOPASSWD: ALL

之后就能让Jenkins执行sudo命令了。

构建步骤2

在更新完代码后编译。编译完成后,直接杀掉Linux中的当前游戏服务器进程。运行启动服务器脚本。

大致如下

cd /mnt/c/<项目地址>
# 编译游戏服务器
sudo bash build.sh

# 关闭 Linux 子系统中的所有名称为 App 的进程(假设游戏服务器进程名是App.dll)
sudo pkill -f App.dll

# 启动脚本(...替换为项目名)
sudo bash StartServer.sh
返回顶部