lcc-work-server.gdsl 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //file:noinspection ALL
  2. pipeline {
  3. agent any
  4. environment {
  5. projectName = 'lcc-work-server'
  6. // 源码配置
  7. git = 'http://git.yvanui.com/luoyifan/LCC-WORLD-MODEL7.git'
  8. gitCredentials = 'git_yvanui_com_lizhiwei'
  9. // 构建配置
  10. baseDir = "${WORKSPACE}"
  11. profiles = 'production'
  12. port = "7722"
  13. // 自定义环境变量
  14. JAVA_HOME = '/opt/jenkins-agent/env/java/jdk-17.0.11'
  15. GRADLE_HOME = '/opt/jenkins-agent/env/gradle/gradle-6.8.3'
  16. MAVEN_HOME = '/opt/jenkins-agent/env/maven/apache-maven-3.9.6'
  17. NODE_HOME = '/opt/node/node-v18.19.0-linux-x64-glibc-217'
  18. PNPM_HOME="/usr/lib/node_modules/pnpm/bin"
  19. PATH = "$JAVA_HOME/bin:$GRADLE_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$PNPM_HOME:$HOME/.nvm/versions/node/v20.19.3/bin:$PATH"
  20. }
  21. stages {
  22. stage('#检查环境') {
  23. steps {
  24. sh """
  25. node -v
  26. npm config set registry https://registry.npmmirror.com
  27. npm install -g pnpm
  28. pnpm -v
  29. """
  30. }
  31. }
  32. stage('#拉取代码') {
  33. steps {
  34. checkout([
  35. $class : 'GitSCM',
  36. branches : [[name: '*/master']],
  37. userRemoteConfigs: [[url: "${git}", credentialsId: "${gitCredentials}"]],
  38. extensions : [],
  39. ])
  40. }
  41. }
  42. stage('#停止服务') {
  43. steps {
  44. sh """
  45. pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'`
  46. if [ -z "\$pid" ];then
  47. echo '${projectName}未运行'
  48. else
  49. ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill
  50. echo '${projectName}已停止!'
  51. sleep 3s
  52. pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'`
  53. if [ -n "\$pid" ];then
  54. ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill -9
  55. echo '${projectName}已停止(强制)!'
  56. sleep 1s
  57. fi
  58. fi
  59. """
  60. }
  61. }
  62. stage('#编译项目') {
  63. steps {
  64. sh """
  65. cd $baseDir/lcc-work-server
  66. pnpm i
  67. """
  68. }
  69. }
  70. stage('#部署服务') {
  71. steps {
  72. sh """
  73. pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'`
  74. if [ -z "\$pid" ];then
  75. echo '${projectName}未运行'
  76. else
  77. ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill
  78. echo '${projectName}已停止!'
  79. sleep 3s
  80. pid=`ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}'`
  81. if [ -n "\$pid" ];then
  82. ps -ef | grep "${baseDir}/lcc-work-server/node_modules/" | grep -v 'grep' | awk '{print \$2}' | xargs kill -9
  83. echo '${projectName}已停止(强制)!'
  84. sleep 1s
  85. fi
  86. fi
  87. """
  88. withEnv(['JENKINS_NODE_COOKIE=dontkillme']) {
  89. sh """
  90. cd $baseDir/lcc-work-server
  91. nohup pnpm run dev >> /dev/null 2>&1 &
  92. echo "查看服务日志: tail -F /home/galaxis/.jenkins/workspace/lcc-work-server/lcc-work-server/logs/combined.log -n 100"
  93. """
  94. }
  95. }
  96. }
  97. }
  98. }