新增s4的jenkins和nginx

This commit is contained in:
dxin
2025-11-04 14:43:52 +08:00
parent e37e8dc9f2
commit 210356d816
5 changed files with 533 additions and 3 deletions

View File

@@ -0,0 +1,98 @@
pipeline {
agent any
tools{
go 'go1.24.0'
}
environment {
REMOTE_HOST_A = "43.130.56.138"
REMOTE_PROJECT_PATH_A = "/data/webapps/go_lessie_sourcing_api_s4"
PORT_A = "8101"
CONNECTION_TIMEOUT = "300" // 等待连接关闭的超时时间
CHECK_PORT_SCRIPT = "/data/sh/check_port.sh" // 检查服务所运行的端口是否起起来
SEND_STOP_GOAPP_SCRIPT = "/data/sh/send_stop_goapp_s4.sh" // 发送GO的优雅停止信号
WAIT_CONNECTIONS_SCRIPT = "/data/sh/wait_for_connections.sh" // 监测实例A是否有连接
}
stages {
stage('Checkout代码') {
steps {
echo "阶段一"
git branch: "${params.Code_branch}", credentialsId: 'fly_gitlab_auth', url: 'http://172.24.16.20/go/lessie-sourcing-api.git'
}
}
stage('依赖&构建') {
steps {
echo "阶段二"
sh """
cd ${WORKSPACE}/
export GOVCS="git.deeplink.media:git,*:git"
echo "拉依赖"
go mod tidy -v -x
echo "构建二进制文件"
make build-linux
cp ./build/lessie-sourcing-api ./build/lessie-sourcing-api-s4
chmod +x ./build/lessie-sourcing-api-s4
"""
}
}
stage('A同步') {
steps {
echo "阶段三"
sh """
echo "进入jenkins工作目录:${WORKSPACE}"
cd ${WORKSPACE}/
echo "同步二进制产物"
rsync -avzuP ./build/lessie-sourcing-api-s4 ./configs/application_s4.yaml ${REMOTE_HOST_A}:${REMOTE_PROJECT_PATH_A}/
"""
}
}
stage('A下线') {
steps {
echo "阶段三"
sh """
ssh ${REMOTE_HOST_A} '
echo "向实例A发送优雅关闭信号"
sh ${SEND_STOP_GOAPP_SCRIPT}
echo "监测实例A是否有连接"
sh ${WAIT_CONNECTIONS_SCRIPT} ${PORT_A} ${CONNECTION_TIMEOUT}
'
"""
}
}
stage('A启动') {
steps {
echo "阶段四"
sh """
ssh ${REMOTE_HOST_A} '
cd ${REMOTE_PROJECT_PATH_A}
chmod +x ./lessie-sourcing-api-s4
nohup env ENV=s4 ./lessie-sourcing-api-s4 --port 8101 > ./go.log 2>&1 &
'
"""
}
}
stage('探测A服务 ') {
steps {
echo "阶段五"
sh "sleep 10"
sh """
ssh ${REMOTE_HOST_A} '
echo "查看实例A的启动日志"
head -n 5 ${REMOTE_PROJECT_PATH_A}/go.log || true
sh ${CHECK_PORT_SCRIPT} 8101 60
sleep 5
ps aux|grep lessie-sourcing-api-s4
'
"""
}
}
}
post {
success {
echo '✅ 部署成功!'
}
failure {
echo '❌ 部署失败,请检查日志!'
}
}
}