mall4j-b2b2c-java-release.jenkinsfile 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. pipeline {
  2. agent any
  3. environment {
  4. JAVA_HOME = "/var/jenkins_home/jdk"
  5. // git账号,不用改
  6. GIT_CREDENTIAL_ID = '175776d4-6bbc-4da1-ace2-f2a89453fba4'
  7. // git地址
  8. GIT_ADDRESS = 'https://git.mall4j.com/bbc/mall4j-bbc'
  9. // git分支
  10. GIT_BRANCH = 'master'
  11. // harbor账号,不用改
  12. HARBOR_CREDENTIAL_ID = 'edd44d2d-f182-40ab-8e72-b4fcae6f793f'
  13. // harbor地址
  14. HARBOR_ADDR = '192.168.1.11:80'
  15. // 名命空间
  16. NAMESPACE = 'mall4j-b2b2c-release'
  17. }
  18. stages {
  19. stage ('拉取git仓库代码') {
  20. steps {
  21. checkout([$class: 'GitSCM', branches: [[name: '*/' + "$GIT_BRANCH"]], extensions: [], userRemoteConfigs: [[credentialsId: "$GIT_CREDENTIAL_ID", url: "$GIT_ADDRESS"]]])
  22. }
  23. }
  24. stage ('通过maven构建项目') {
  25. steps {
  26. // 替换es索引地址
  27. sh 'sed -i "s#PRODUCT(\\"product\\")#PRODUCT(\\"$NAMESPACE-product\\")#g" ./yami-shop-search/yami-shop-search-common/src/main/java/com/yami/shop/search/common/constant/EsIndexEnum.java'
  28. // 替换定时任务
  29. sh 'sed -i "s#\\"mall4j-bbc\\"#\\"mall4j-bbc\\"#g" ./yami-shop-platform/src/main/java/com/yami/shop/platform/config/XxlJobConfig.java'
  30. // 构建项目
  31. sh '/var/jenkins_home/maven/bin/mvn -T 1C clean package -DskipTests=true'
  32. }
  33. }
  34. stage ('通过docker并行制作镜像') {
  35. parallel {
  36. stage('构建yami-shop-api镜像') {
  37. steps {
  38. withEnv(["PROJECT_NAME=yami-shop-api"]) {
  39. sh 'cd ./$PROJECT_NAME && docker build -t $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER .'
  40. withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) {
  41. sh 'echo "$DOCKER_PASSWORD" | docker login $HARBOR_ADDR -u "$DOCKER_USERNAME" --password-stdin'
  42. sh 'docker push $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER'
  43. sh 'ssh root@192.168.1.5 kubectl set image deploy/$PROJECT_NAME $PROJECT_NAME=$HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER -n $NAMESPACE'
  44. }
  45. }
  46. }
  47. }
  48. stage('构建yami-shop-multishop镜像') {
  49. steps {
  50. withEnv(["PROJECT_NAME=yami-shop-multishop"]) {
  51. sh 'cd ./$PROJECT_NAME && docker build -t $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER .'
  52. withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) {
  53. sh 'echo "$DOCKER_PASSWORD" | docker login $HARBOR_ADDR -u "$DOCKER_USERNAME" --password-stdin'
  54. sh 'docker push $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER'
  55. sh 'ssh root@192.168.1.5 kubectl set image deploy/$PROJECT_NAME $PROJECT_NAME=$HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER -n $NAMESPACE'
  56. }
  57. }
  58. }
  59. }
  60. stage('构建yami-shop-platform镜像') {
  61. steps {
  62. withEnv(["PROJECT_NAME=yami-shop-platform"]) {
  63. sh 'cd ./$PROJECT_NAME && docker build -t $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER .'
  64. withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) {
  65. sh 'echo "$DOCKER_PASSWORD" | docker login $HARBOR_ADDR -u "$DOCKER_USERNAME" --password-stdin'
  66. sh 'docker push $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER'
  67. sh 'ssh root@192.168.1.5 kubectl set image deploy/$PROJECT_NAME $PROJECT_NAME=$HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER -n $NAMESPACE'
  68. }
  69. }
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }