第一、使用的组件
- 服务器安装jenkins:我的版本是
jenkins-2.289.1-1.1.noarch.rpm
,参考文章:jenkins安装文章1,jenkins安装文章2,注意:java最好是安装1.8版本的; - 服务器配置golang环境:参考文章:golang环境配置文章,个人推荐使用代理
go env -w GOPROXY=https://goproxy.cn,direct
- gitee代码仓库:如果没有账号,自己注册一个。
第二、jenkins配置
-
在
系统管理-插件管理
中安装gitee
插件;
-
在
系统管理-系统配置
中修改gitee配置, 如图:
去gitee个人设置页面申请私人令牌
:
-
新建一个自由风格的软件项目;
4. 选择增加构建步骤-执行shell
#使环境变量生效,这个必须要写
source /etc/profile
#进入工作目录
cd ${WORKSPACE}
#go mod 依赖
go mod tidy
#删除之前的可执行文件
rm -rf main
#编译打包
go build main.go
#执行部署shell脚本,这个在golang项目中
sh build.sh
5. golang项目根目录下增加一个build.sh文件,代码如下:
#局部变量(执行文件名称), 根据自己项目随便写
project_name="gotest"
#杀掉之前正在运行的程序
go_id=`ps -ef|grep "./${project_name}" |grep -v "grep" | awk '{print $2}'`
if [ -z "$go_id" ];
then
echo "[go pid not found]"
else
#杀掉进程
kill -9 $go_id
echo "killed $go_id"
fi
#清除旧的编译文件
echo "clean old file"
rm -rf ${project_name}
#执行日志,根据自己项目情况可选
rm -rf ${project_name}.log
if [ -f main ]; then
echo "strat new process"
mv main ${project_name}
chmod -R 777 ${project_name}
#这里要防止nohup不执行,添加了一个BUILD_ID
BUILD_ID=DONTKILLME nohup ./${project_name} >${project_name}.log 2>&1 &
else
echo "executable file not found,quit"
fi
- 保存以上jenkins配置,然后回到自己电脑上,提交golang项目代码,就可以看到jenkins自动部署了。