Shell脚本实现
#!/bin/bash
echo "开始发布"
cd /run-path
echo "同步代码"
git pull
echo "编译项目"
go build -o /build-file-path -ldflags "-w -s" ./
echo "停止当前服务"
pid=$(ps -ef | grep 'keyword' | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
else
echo "服务未启动"
fi
echo "重启新服务"
cd /run-path/
sleep 1
echo "重启新服务"
if [[ -f "${release_dir}build_last" ]]; then
echo "存在新版本文件,尝试替换"
if [[ -f "${release_dir}build" ]]; then
echo "存在旧程序文件,删除build"
rm -f "${release_dir}build"
fi
mv "${release_dir}build_last" "${release_dir}build"
fi
nohup "${release_dir}build" > output.log 2>&1 &
cat "${release_dir}output.log"
echo "部署完成"
goploy 使用custom 上传相关文件
/bin/sh -c "scp -r ${REPOSITORY_PATH}/${AFTER_DEPLOY_FILENAME} ${SERVER_OWNER}@${SERVER_IP}:${PROJECT_PATH}/${AFTER_DEPLOY_FILENAME}"