pipeline { agent any options { timestamps() } parameters { choice( name: 'XSH_DEPLOY_TARGET', choices: ['main'], description: 'main:眩生花线上版本' ) booleanParam( name: 'XSH_DEPLOY_TO_PRODUCTION', defaultValue: true, description: '是否自动部署到线上环境(否则只构建产物)\n* 仅在 main 分支生效' ) } tools { nodejs 'NodeJS 22.22' } libraries { lib('xsh-common@main') } stages { stage('Checkout') { steps { checkout scm } } stage('Lint') { steps { sh ''' corepack enable pnpm install --registry=https://registry.npmmirror.com pnpm run lint ''' } } stage('Build') { when { allOf { expression { currentBuild.currentResult == 'SUCCESS' } expression { env.TAG_NAME != null } } } steps { sh ''' corepack enable pnpm install --registry=https://registry.npmmirror.com pnpm run generate ''' } } } post { always { echo "Build finished: ${currentBuild.currentResult}" } success { archiveArtifacts allowEmptyArchive: true, artifacts: 'dist/**', followSymlinks: true, onlyIfSuccessful: true } failure { echo "Build failed" } } }