mall4j-b2b2c-ms-release.jenkinsfile 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. pipeline {
  2. agent any
  3. environment {
  4. // git账号,不用改
  5. GIT_CREDENTIAL_ID = '175776d4-6bbc-4da1-ace2-f2a89453fba4'
  6. // git地址
  7. GIT_ADDRESS = 'https://git.mall4j.com/bbc/mall4ms-bbc'
  8. // git分支
  9. GIT_BRANCH = 'master'
  10. // harbor账号,不用改
  11. HARBOR_CREDENTIAL_ID = 'edd44d2d-f182-40ab-8e72-b4fcae6f793f'
  12. // harbor地址
  13. HARBOR_ADDR = '192.168.1.11:80'
  14. // 名命空间
  15. NAMESPACE = 'mall4j-b2b2c-release'
  16. }
  17. stages {
  18. stage ('拉取git仓库代码') {
  19. steps {
  20. checkout([$class: 'GitSCM', branches: [[name: '*/' + "$GIT_BRANCH"]], extensions: [], userRemoteConfigs: [[credentialsId: "$GIT_CREDENTIAL_ID", url: "$GIT_ADDRESS"]]])
  21. }
  22. }
  23. stage ('通过npm构建项目') {
  24. steps {
  25. sh '''export PATH=/var/jenkins_home/nodejs/bin:$PATH
  26. rm -f .env.production
  27. tee ./.env.production <<-'EOF'
  28. # 如需添加更多环境变量,请以 VITE_APP_ 开头声明
  29. # 在代码中使用 import.meta.env.VITE_APP_XXX 获取指定变量
  30. # 环境配置标识
  31. VITE_APP_ENV = 'production'
  32. # 微信公众号appid
  33. VITE_APP_MP_APPID = ''
  34. # 统一接口域名
  35. VITE_APP_BASE_API = 'https://b2b2c-multishop.mall4j.com/apis'
  36. # 客服webstock接口请求地址
  37. VITE_APP_WS_IM_API = 'wss://b2b2c-im.mall4j.com'
  38. # 移动端域名地址配置
  39. VITE_APP_H5_DOMAIN = 'https://h5.mall4j.com/'
  40. # 商家端后台地址(pc)
  41. VITE_APP_MERCHANT_PKATFORM_URL = 'https://b2b2c-multishop.mall4j.com/'
  42. # 图片域名
  43. VITE_APP_RESOURCES_URL = 'https://img.mall4j.com/'
  44. // h5或其它app打开当前App的自定义UrlSchemes,还需要在manifest.json -> app-plus -> android/schemes 与 ios urltypes 中进行配置 (二者需要一致) (不可与用户移动端的urlSchemes相同)
  45. VITE_APP_URL_SCHEMES = 'lanhaibbcms'
  46. # 天地图Key
  47. VITE_APP_MAP_KEY = ''
  48. EOF
  49. cd src
  50. sed -i 's#"key" : ""#"key" : ""#g' manifest.json
  51. cd ..
  52. npm config set registry https://registry.npmmirror.com
  53. pnpm install --no-frozen-lockfile
  54. npm run build:h5'''
  55. }
  56. }
  57. stage('构建yami-shop-ms镜像') {
  58. steps {
  59. withEnv(["PROJECT_NAME=yami-shop-ms"]) {
  60. sh 'docker build -t $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER .'
  61. withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) {
  62. sh 'echo "$DOCKER_PASSWORD" | docker login $HARBOR_ADDR -u "$DOCKER_USERNAME" --password-stdin'
  63. sh 'docker push $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER'
  64. sh 'ssh root@192.168.1.5 kubectl set image deploy/$PROJECT_NAME $PROJECT_NAME=$HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER -n $NAMESPACE'
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }