Jenkinsfile 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. pipeline {
  2. agent {
  3. node {
  4. label 'maven'
  5. }
  6. }
  7. stages {
  8. stage('拉取代码') {
  9. agent none
  10. steps {
  11. container('maven') {
  12. git(credentialsId: 'nas-gitlab', url: 'http://gitlab.yinbin.ink:30000/test/yygh-parent.git', branch: 'master', changelog: true, poll: false)
  13. }
  14. }
  15. }
  16. stage('项目编译') {
  17. agent none
  18. steps {
  19. container('maven') {
  20. sh 'mvn clean package -DskipTests=true '
  21. }
  22. }
  23. }
  24. stage('default-2') {
  25. parallel {
  26. stage('构建 hospital-manage 镜像') {
  27. agent none
  28. steps {
  29. container('maven') {
  30. sh '''export PN=hospital-manage
  31. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  32. }
  33. }
  34. }
  35. stage('构建 server-gateway 镜像') {
  36. agent none
  37. steps {
  38. container('maven') {
  39. sh '''export PN=server-gateway
  40. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  41. }
  42. }
  43. }
  44. stage('构建 service-cmn 镜像') {
  45. agent none
  46. steps {
  47. container('maven') {
  48. sh '''export PN=service-cmn
  49. cd service
  50. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  51. }
  52. }
  53. }
  54. stage('构建 service-hosp 镜像') {
  55. agent none
  56. steps {
  57. container('maven') {
  58. sh '''export PN=service-hosp
  59. cd service
  60. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  61. }
  62. }
  63. }
  64. stage('构建 service-order 镜像') {
  65. agent none
  66. steps {
  67. container('maven') {
  68. sh '''export PN=service-order
  69. cd service
  70. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  71. }
  72. }
  73. }
  74. stage('构建 service-oss 镜像') {
  75. agent none
  76. steps {
  77. container('maven') {
  78. sh '''export PN=service-oss
  79. cd service
  80. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  81. }
  82. }
  83. }
  84. stage('构建 service-sms 镜像') {
  85. agent none
  86. steps {
  87. container('maven') {
  88. sh '''export PN=service-sms
  89. cd service
  90. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  91. }
  92. }
  93. }
  94. stage('构建 service-statistics 镜像') {
  95. agent none
  96. steps {
  97. container('maven') {
  98. sh '''export PN=service-statistics
  99. cd service
  100. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  101. }
  102. }
  103. }
  104. stage('构建 service-task 镜像') {
  105. agent none
  106. steps {
  107. container('maven') {
  108. sh '''export PN=service-task
  109. cd service
  110. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  111. }
  112. }
  113. }
  114. stage('构建 service-user 镜像') {
  115. agent none
  116. steps {
  117. container('maven') {
  118. sh '''export PN=service-user
  119. cd service
  120. docker build -t $PN:latest -f $PN/Dockerfile $PN'''
  121. }
  122. }
  123. }
  124. }
  125. }
  126. stage('default-3') {
  127. parallel {
  128. stage('推送 hospital-manage 镜像') {
  129. agent none
  130. steps {
  131. container('maven') {
  132. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  133. sh '''export APP_NAME=hospital-manage
  134. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  135. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  136. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  137. }
  138. }
  139. }
  140. }
  141. stage('推送 server-gateway 镜像') {
  142. agent none
  143. steps {
  144. container('maven') {
  145. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  146. sh '''export APP_NAME=server-gateway
  147. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  148. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  149. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  150. }
  151. }
  152. }
  153. }
  154. stage('推送 service-cmn 镜像') {
  155. agent none
  156. steps {
  157. container('maven') {
  158. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  159. sh '''export APP_NAME=service-cmn
  160. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  161. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  162. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  163. }
  164. }
  165. }
  166. }
  167. stage('推送 service-hosp 镜像') {
  168. agent none
  169. steps {
  170. container('maven') {
  171. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  172. sh '''export APP_NAME=service-hosp
  173. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  174. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  175. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  176. }
  177. }
  178. }
  179. }
  180. stage('推送 service-order 镜像') {
  181. agent none
  182. steps {
  183. container('maven') {
  184. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  185. sh '''export APP_NAME=service-order
  186. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  187. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  188. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  189. }
  190. }
  191. }
  192. }
  193. stage('推送 service-oss 镜像') {
  194. agent none
  195. steps {
  196. container('maven') {
  197. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  198. sh '''export APP_NAME=service-oss
  199. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  200. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  201. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  202. }
  203. }
  204. }
  205. }
  206. stage('推送 service-sms 镜像') {
  207. agent none
  208. steps {
  209. container('maven') {
  210. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  211. sh '''export APP_NAME=service-sms
  212. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  213. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  214. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  215. }
  216. }
  217. }
  218. }
  219. stage('推送 service-statistics 镜像') {
  220. agent none
  221. steps {
  222. container('maven') {
  223. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  224. sh '''export APP_NAME=service-statistics
  225. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  226. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  227. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  228. }
  229. }
  230. }
  231. }
  232. stage('推送 service-task 镜像') {
  233. agent none
  234. steps {
  235. container('maven') {
  236. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  237. sh '''export APP_NAME=service-task
  238. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  239. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  240. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  241. }
  242. }
  243. }
  244. }
  245. stage('推送 service-user 镜像') {
  246. agent none
  247. steps {
  248. container('maven') {
  249. withCredentials([usernamePassword(credentialsId : 'harbor-docker-registry' ,passwordVariable : 'DOCKER_REGISTY_PASSWD' ,usernameVariable : 'DOCKER_REGISTY_USER' ,)]) {
  250. sh '''export APP_NAME=service-user
  251. echo "$DOCKER_REGISTY_PASSWD" | docker login $REGISTRY -u "$DOCKER_REGISTY_USER" --password-stdin
  252. docker tag $APP_NAME:latest $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER
  253. docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:v$BUILD_NUMBER'''
  254. }
  255. }
  256. }
  257. }
  258. }
  259. }
  260. stage('default-4') {
  261. parallel {
  262. stage('部署 hospital-manage 到dev集群') {
  263. agent none
  264. steps {
  265. kubernetesDeploy(configs: 'hospital-manage/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  266. }
  267. }
  268. stage('部署 server-gateway 到dev集群') {
  269. agent none
  270. steps {
  271. kubernetesDeploy(configs: 'server-gateway/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  272. }
  273. }
  274. stage('部署 service-cmn 到dev集群') {
  275. agent none
  276. steps {
  277. kubernetesDeploy(configs: 'service/service-cmn/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  278. }
  279. }
  280. stage('部署 service-hosp 到dev集群') {
  281. agent none
  282. steps {
  283. kubernetesDeploy(configs: 'service/service-hosp/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  284. }
  285. }
  286. stage('部署 service-order 到dev集群') {
  287. agent none
  288. steps {
  289. kubernetesDeploy(configs: 'service/service-order/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  290. }
  291. }
  292. stage('部署 service-oss 到dev集群') {
  293. agent none
  294. steps {
  295. kubernetesDeploy(configs: 'service/service-oss/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  296. }
  297. }
  298. stage('部署 service-sms 到dev集群') {
  299. agent none
  300. steps {
  301. kubernetesDeploy(configs: 'service/service-sms/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  302. }
  303. }
  304. stage('部署 service-statistics 到dev集群') {
  305. agent none
  306. steps {
  307. kubernetesDeploy(configs: 'service/service-statistics/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  308. }
  309. }
  310. stage('部署 service-task 到dev集群') {
  311. agent none
  312. steps {
  313. kubernetesDeploy(configs: 'service/service-task/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  314. }
  315. }
  316. stage('部署 service-user 到dev集群') {
  317. agent none
  318. steps {
  319. kubernetesDeploy(configs: 'service/service-user/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
  320. }
  321. }
  322. }
  323. }
  324. stage('ok') {
  325. agent none
  326. steps {
  327. echo 'ok!!!'
  328. }
  329. }
  330. }
  331. environment {
  332. DOCKER_CREDENTIAL_ID = 'dockerhub-id'
  333. GITHUB_CREDENTIAL_ID = 'github-id'
  334. KUBECONFIG_CREDENTIAL_ID = 'kubeconfig-dev-id'
  335. REGISTRY = '192.168.122.10:30002'
  336. DOCKERHUB_NAMESPACE = 'devops_syt'
  337. GITHUB_ACCOUNT = 'kubesphere'
  338. APP_NAME = 'devops-java-sample'
  339. }
  340. }