From a6a5a1e8bf24f65ffc741650810ecbe6656201a2 Mon Sep 17 00:00:00 2001 From: CI Date: Sat, 16 May 2026 09:08:46 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20fix=20Jenkinsfile=20for=20Windows=20Jenki?= =?UTF-8?q?ns=20=E2=80=94=20bat,=20NEXUS=5FCREDS,=20XuqmGroup=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 61 +++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e61e4fa..46686d5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,6 @@ pipeline { agent any parameters { - string(name: 'BRANCH', defaultValue: 'main', description: 'Git 分支名') string(name: 'VERSION', defaultValue: '', description: '发布版本号(留空使用 package.json 中的 version)') booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否运行测试') booleanParam(name: 'PUBLISH', defaultValue: true, description: '是否发布到 Nexus npm 仓库') @@ -10,7 +9,7 @@ pipeline { environment { NEXUS_REGISTRY = 'https://nexus.xuqinmin.com/repository/npm-hosted/' - GIT_URL = 'https://xuqinmin.com/xuqinmin12/XuqmGroup-Vue3SDK.git' + GIT_URL = 'https://xuqinmin.com/xuqmGroup/XuqmGroup-Vue3SDK.git' NODE_VERSION = '22' } @@ -23,49 +22,51 @@ pipeline { stages { stage('Checkout') { steps { - checkout scm + checkout([ + $class: 'GitSCM', + branches: [[name: 'main']], + extensions: [[$class: 'CleanBeforeCheckout']], + userRemoteConfigs: scm.userRemoteConfigs + ]) script { - env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + env.GIT_COMMIT_SHORT = bat(script: '@git rev-parse --short HEAD', returnStdout: true).trim() if (params.VERSION?.trim()) { - sh "npm version ${params.VERSION} --no-git-tag-version" + bat "npm version ${params.VERSION} --no-git-tag-version" } - env.PUBLISH_VERSION = sh(script: 'node -p "require(\"./package.json\").version"', returnStdout: true).trim() + env.PUBLISH_VERSION = bat(script: '@node -p "require(\'./package.json\').version"', returnStdout: true).trim() } } } stage('Build Info') { steps { - script { - echo "🚀 构建分支: ${params.BRANCH}" - echo "🏷️ 发布版本: ${env.PUBLISH_VERSION}" - echo "🔨 Git Commit: ${env.GIT_COMMIT_SHORT}" - } + echo "发布版本: ${env.PUBLISH_VERSION}" + echo "Git Commit: ${env.GIT_COMMIT_SHORT}" } } stage('Install Dependencies') { steps { - sh 'npm ci' + bat 'npm ci' } } stage('Type Check') { steps { - sh 'npm run type-check' + bat 'npm run type-check' } } stage('Build') { steps { - sh 'npm run build' + bat 'npm run build' } } stage('Tests') { when { expression { return params.RUN_TESTS } } steps { - sh 'npm run test 2>&1 | tee test-results.txt' + bat 'npm run test > test-results.txt 2>&1 || ver>nul' } post { always { @@ -76,17 +77,20 @@ pipeline { stage('Publish to Nexus') { when { - allOf { - branch 'main' - expression { return params.PUBLISH } - } + expression { return params.PUBLISH } } steps { - withCredentials([usernamePassword(credentialsId: 'nexus-npm-credentials', passwordVariable: 'NPM_PASS', usernameVariable: 'NPM_USER')]) { - sh """ - echo "//nexus.xuqinmin.com/repository/npm-hosted/:_auth=\$(echo -n '\${NPM_USER}:\${NPM_PASS}' | base64)" > .npmrc - npm publish --registry ${NEXUS_REGISTRY} - """ + withCredentials([usernamePassword(credentialsId: 'NEXUS_CREDS', passwordVariable: 'NPM_PASS', usernameVariable: 'NPM_USER')]) { + script { + def auth = "${NPM_USER}:${NPM_PASS}".bytes.encodeBase64().toString() + writeFile file: '.npmrc', text: "//nexus.xuqinmin.com/repository/npm-hosted/:_auth=${auth}\n" + bat "npm publish --registry %NEXUS_REGISTRY%" + } + } + } + post { + always { + bat 'del .npmrc 2>nul || exit 0' } } } @@ -95,17 +99,14 @@ pipeline { post { success { script { - echo "✅ Vue3 SDK v${env.PUBLISH_VERSION} 构建成功 (Commit: ${env.GIT_COMMIT_SHORT})" + echo "Vue3 SDK v${env.PUBLISH_VERSION} 构建成功 (Commit: ${env.GIT_COMMIT_SHORT})" if (params.PUBLISH) { - echo "📦 已发布到 Nexus npm 仓库: ${NEXUS_REGISTRY}" + echo "已发布到 Nexus npm 仓库: ${NEXUS_REGISTRY}" } } } failure { - echo "❌ Vue3 SDK 构建失败,请检查日志" - } - always { - sh 'rm -f .npmrc 2>/dev/null || true' + echo "Vue3 SDK 构建失败,请检查日志" } } }