pipeline { agent any environment { // git账号,不用改 GIT_CREDENTIAL_ID = '175776d4-6bbc-4da1-ace2-f2a89453fba4' // git地址 GIT_ADDRESS = 'https://git.mall4j.com/bbc/mall4ms-bbc' // git分支 GIT_BRANCH = 'master' // harbor账号,不用改 HARBOR_CREDENTIAL_ID = 'edd44d2d-f182-40ab-8e72-b4fcae6f793f' // harbor地址 HARBOR_ADDR = '192.168.1.11:80' // 名命空间 NAMESPACE = 'mall4j-b2b2c-release' } stages { stage ('拉取git仓库代码') { steps { checkout([$class: 'GitSCM', branches: [[name: '*/' + "$GIT_BRANCH"]], extensions: [], userRemoteConfigs: [[credentialsId: "$GIT_CREDENTIAL_ID", url: "$GIT_ADDRESS"]]]) } } stage ('通过npm构建项目') { steps { sh '''export PATH=/var/jenkins_home/nodejs/bin:$PATH rm -f .env.production tee ./.env.production <<-'EOF' # 如需添加更多环境变量,请以 VITE_APP_ 开头声明 # 在代码中使用 import.meta.env.VITE_APP_XXX 获取指定变量 # 环境配置标识 VITE_APP_ENV = 'production' # 微信公众号appid VITE_APP_MP_APPID = '' # 统一接口域名 VITE_APP_BASE_API = 'https://b2b2c-multishop.mall4j.com/apis' # 客服webstock接口请求地址 VITE_APP_WS_IM_API = 'wss://b2b2c-im.mall4j.com' # 移动端域名地址配置 VITE_APP_H5_DOMAIN = 'https://h5.mall4j.com/' # 商家端后台地址(pc) VITE_APP_MERCHANT_PKATFORM_URL = 'https://b2b2c-multishop.mall4j.com/' # 图片域名 VITE_APP_RESOURCES_URL = 'https://img.mall4j.com/' // h5或其它app打开当前App的自定义UrlSchemes,还需要在manifest.json -> app-plus -> android/schemes 与 ios urltypes 中进行配置 (二者需要一致) (不可与用户移动端的urlSchemes相同) VITE_APP_URL_SCHEMES = 'lanhaibbcms' # 天地图Key VITE_APP_MAP_KEY = '' EOF cd src sed -i 's#"key" : ""#"key" : ""#g' manifest.json cd .. npm config set registry https://registry.npmmirror.com pnpm install --no-frozen-lockfile npm run build:h5''' } } stage('构建yami-shop-ms镜像') { steps { withEnv(["PROJECT_NAME=yami-shop-ms"]) { sh 'docker build -t $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER .' withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$HARBOR_CREDENTIAL_ID" ,)]) { sh 'echo "$DOCKER_PASSWORD" | docker login $HARBOR_ADDR -u "$DOCKER_USERNAME" --password-stdin' sh 'docker push $HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER' sh 'ssh root@192.168.1.5 kubectl set image deploy/$PROJECT_NAME $PROJECT_NAME=$HARBOR_ADDR/$NAMESPACE/$PROJECT_NAME:$BUILD_NUMBER -n $NAMESPACE' } } } } } }