You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.sh 4.7 kB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #!/bin/bash
  2. #记录开始时间
  3. start=$(date +%s)
  4. # 默认参数
  5. branch="master"
  6. service="manage-front"
  7. show_help() {
  8. echo "Usage: $0 [-b branch] [-s service]"
  9. echo
  10. echo "Options:"
  11. echo " -b Branch to deploy, default is master"
  12. echo " -s Service to deploy (manage-front, manage, front, all, system, default is manage-front)"
  13. echo " -h Show this help message"
  14. }
  15. # 解析命令行选项
  16. while getopts "b:s:h" opt; do
  17. case $opt in
  18. b) branch=$OPTARG ;;
  19. s) service=$OPTARG ;;
  20. h) show_help; exit 0 ;;
  21. \?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
  22. esac
  23. done
  24. echo "branch: $branch"
  25. echo "service: $service"
  26. valid_services=("manage-front" "manage" "front" "all" "auth" "gateway" "system")
  27. if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then
  28. echo "Invalid service name: $service" >&2
  29. echo "Valid services are: ${valid_services[*]}"
  30. exit 1
  31. fi
  32. # 登录到目标环境
  33. baseDir="/home/somuns/ci4s"
  34. cd ${baseDir}
  35. # 创建目录
  36. mkdir -p ${baseDir}/k8s/dockerfiles/jar
  37. mkdir -p ${baseDir}/k8s/dockerfiles/html
  38. compile_front() {
  39. # 清理前端构建文件
  40. if [ -d "${baseDir}/react-ui/dist" ]; then
  41. rm -rf ${baseDir}/react-ui/dist
  42. fi
  43. # 编译前端
  44. docker run -v ${baseDir}:${baseDir} \
  45. -e http_proxy=http://172.20.32.253:3128 -e https_proxy=http://172.20.32.253:3128 \
  46. 172.20.32.187/tempimagefile/node:18.16.0 ${baseDir}/k8s/build-node.sh
  47. if [ $? -ne 0 ]; then
  48. echo "编译失败,请检查代码!"
  49. exit 1
  50. fi
  51. # 复制前端文件
  52. cp -rf ${baseDir}/react-ui/dist/ ${baseDir}/k8s/dockerfiles/html
  53. if [ $? -ne 0 ]; then
  54. echo "复制html文件失败,请检查代码!"
  55. exit 1
  56. fi
  57. }
  58. compile_java() {
  59. param=$1
  60. # 编译java
  61. docker run -v ${baseDir}:${baseDir} -v /home/maven:/home/maven \
  62. -e http_proxy=http://172.20.32.253:3128 -e https_proxy=http://172.20.32.253:3128 \
  63. 172.20.32.187/ci4s/build:v3 ${baseDir}/k8s/build-java.sh $param
  64. if [ $? -ne 0 ]; then
  65. echo "编译失败,请检查代码!"
  66. exit 1
  67. fi
  68. # 复制jar包
  69. if [ "$param" == "manage-front" ] || [ "$param" == "manage" ]; then
  70. cp -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar ${baseDir}/k8s/dockerfiles/jar/management-platform.jar
  71. if [ $? -ne 0 ]; then
  72. echo "复制jar包失败,请检查代码!"
  73. exit 1
  74. fi
  75. fi
  76. if [ "$param" == "gateway" ]; then
  77. cp -rf ${baseDir}/ruoyi-gateway/target/ruoyi-gateway.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-gateway.jar
  78. if [ $? -ne 0 ]; then
  79. echo "复制jar包失败,请检查代码!"
  80. exit 1
  81. fi
  82. fi
  83. if [ "$param" == "auth" ]; then
  84. cp -rf ${baseDir}/ruoyi-auth/target/ruoyi-auth.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-auth.jar
  85. if [ $? -ne 0 ]; then
  86. echo "复制jar包失败,请检查代码!"
  87. exit 1
  88. fi
  89. fi
  90. if [ "$param" == "system" ]; then
  91. cp -rf ${baseDir}/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-modules-system.jar
  92. if [ $? -ne 0 ]; then
  93. echo "复制jar包失败,请检查代码!"
  94. exit 1
  95. fi
  96. fi
  97. if [ "$param" == "all" ]; then
  98. cp -rf ${baseDir}/ruoyi-modules/management-platform/target/management-platform.jar ${baseDir}/k8s/dockerfiles/jar/management-platform.jar
  99. if [ $? -ne 0 ]; then
  100. echo "复制jar包失败,请检查代码!"
  101. exit 1
  102. fi
  103. cp -rf ${baseDir}/ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-modules-system.jar
  104. if [ $? -ne 0 ]; then
  105. echo "复制jar包失败,请检查代码!"
  106. exit 1
  107. fi
  108. cp -rf ${baseDir}/ruoyi-auth/target/ruoyi-auth.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-auth.jar
  109. if [ $? -ne 0 ]; then
  110. echo "复制jar包失败,请检查代码!"
  111. exit 1
  112. fi
  113. cp -rf ${baseDir}/ruoyi-gateway/target/ruoyi-gateway.jar ${baseDir}/k8s/dockerfiles/jar/ruoyi-gateway.jar
  114. if [ $? -ne 0 ]; then
  115. echo "复制jar包失败,请检查代码!"
  116. exit 1
  117. fi
  118. fi
  119. }
  120. if [ "$service" == "front" ]; then
  121. # 编译前端
  122. compile_front
  123. fi
  124. if [ "$service" == "manage-front" ]; then
  125. # 编译前端
  126. compile_front
  127. # 编译java
  128. compile_java "manage"
  129. fi
  130. if [ "$service" != "manage-front" ] && [ "$service" != "all" ] && [ "$service" != "front" ]; then
  131. # 编译java
  132. compile_java $service
  133. fi
  134. if [ "$service" == "all" ]; then
  135. # 编译前端
  136. compile_front
  137. # 编译java
  138. compile_java "all"
  139. fi
  140. # 记录结束时间
  141. end=$(date +%s)
  142. #计算运行时间
  143. runtime=$((end-start))
  144. echo "编译成功,耗时:$runtime 秒"