diff --git a/9_58_30003/lcc-work-server.gdsl b/9_58_30003/lcc-work-server.gdsl new file mode 100644 index 0000000..a722c4b --- /dev/null +++ b/9_58_30003/lcc-work-server.gdsl @@ -0,0 +1,103 @@ +//file:noinspection ALL +pipeline { + agent any + + environment { + projectName = 'lcc-work-server' + // 源码配置 + git = 'http://git.yvanui.com/luoyifan/LCC-WORLD-MODEL7.git' + gitCredentials = 'git_yvanui_com_lizhiwei' + // 构建配置 + baseDir = "${WORKSPACE}" + profiles = 'production' + port = "7722" + // 自定义环境变量 + JAVA_HOME = '/opt/jenkins-agent/env/java/jdk-17.0.11' + GRADLE_HOME = '/opt/jenkins-agent/env/gradle/gradle-6.8.3' + MAVEN_HOME = '/opt/jenkins-agent/env/maven/apache-maven-3.9.6' + NODE_HOME = '/opt/node/node-v18.19.0-linux-x64-glibc-217' + PNPM_HOME="/usr/lib/node_modules/pnpm/bin" + PATH = "$JAVA_HOME/bin:$GRADLE_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$PNPM_HOME:$HOME/.nvm/versions/node/v20.19.3/bin:$PATH" + } + + stages { + stage('#检查环境') { + steps { + sh """ + node -v + npm config set registry https://registry.npmmirror.com + npm install -g pnpm + pnpm -v + """ + } + } + + stage('#拉取代码') { + steps { + checkout([ + $class : 'GitSCM', + branches : [[name: '*/master']], + userRemoteConfigs: [[url: "${git}", credentialsId: "${gitCredentials}"]], + extensions : [], + ]) + } + } + + stage('#停止服务') { + steps { + sh """ + pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'` + if [ -z "\$pid" ];then + echo '${projectName}未运行' + else + ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill + echo '${projectName}已停止!' + sleep 3s + pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'` + if [ -n "\$pid" ];then + ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill -9 + echo '${projectName}已停止(强制)!' + sleep 1s + fi + fi + """ + } + } + + stage('#编译项目') { + steps { + sh """ + cd $baseDir/lcc-work-server + pnpm i + """ + } + } + + stage('#部署服务') { + steps { + sh """ + pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'` + if [ -z "\$pid" ];then + echo '${projectName}未运行' + else + ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill + echo '${projectName}已停止!' + sleep 3s + pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'` + if [ -n "\$pid" ];then + ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill -9 + echo '${projectName}已停止(强制)!' + sleep 1s + fi + fi + """ + withEnv(['JENKINS_NODE_COOKIE=dontkillme']) { + sh """ + cd $baseDir/lcc-work-server + nohup pnpm run dev >> /dev/null 2>&1 & + """ + } + } + } + } +}