Jenkins 编译并发布Golang程序

一、新建Jenkins项目

这一步没有好说的,建立自由风格即可

二、安装插件

因为我是从Git上拉到代码,所以Git插件必须安装
SSH发布插件: Publish Over SSH

三、配置

1、配置SSH 服务器

进入 Configure System
设置SSH密码

image.png

设置SSH相关信息

image.png

可以点击 Test 进行测试是否正确

2、SSH服务器上 sh 文件准备

因为Golang的程序不像java,可以以运行中替换,所以要准备两个sh文件 。放到你要运行的目录上。
一个是 stop.sh和start_jenkins.sh

stop.sh

#!/bin/sh
# 端口号
PORT=8201

DATE=`date '+%Y%m%d'`
for port in ${PORT}
do
    pid=`netstat -anltp | grep $port | awk '{print $7}' | awk -F"/" '{ print $1 }' | head -1`
    if  [ ! -n "$pid" ] ;then
        continue
    else
        kill -9 $pid

    fi
done

echo "成功关闭"

exit 0

复制代码

最后一行的 exit 0 一定要加,不然jenkins 得不到你是否成功的消息

start_jenkins.sh


#!/bin/sh
# 端口号

nohup  ./report.pubcom.maque.cloud>> ./logs/nohup`date +%Y-%m-%d`.out 2>&1 &

exit 0
复制代码

3、Jenkins项目配置

源码配置

image.png

在构建节点,配置stop.sh

image.png

注意配置你的 Remote directory

执行go build

image.png

提交文件到服务器,并执行start_jenkins.sh

image.png

四、注意点

因为我的golang 调用了oracle 库,调用start.sh一直报错

64-bit Oracle Client library cannot be loaded: “libclntsh.so: cannot open shared object file

但是直接登陆ssh执行启动又是好的。
查了资料,需要在服务器上增加配置

vim /etc/ld.so.conf;
复制代码

#末尾追加
/maque/tools/instantclient_18_5 #根据你安装oracle版本驱动路径

#保存运行

ldconfig
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享