修正AGC Windows流水线环境配置
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m52s
Project CI / Native shell tests (pull_request) Failing after 16m19s

通过withEnv注入Windows构建工具路径

覆盖源码检出、依赖安装和构建上传阶段
This commit is contained in:
2026-09-01 11:36:34 +08:00
parent 56aac66f02
commit df5ae8f927
+46 -41
View File
@@ -15,7 +15,7 @@ pipeline {
GENARRATIVE_NPM_VERSION = '10.9.7'
AGC_OSS_BUCKET = 'agc-dev'
AGC_OSS_ENDPOINT = 'oss-rg-china-mainland.aliyuncs.com'
PATH+AGC_TOOLS = 'C:\\Tools\\Git\\cmd;C:\\Program Files\\nodejs;C:\\Users\\Administrator\\.cargo\\bin;C:\\Program Files (x86)\\NSIS;C:\\Tools\\ossutil'
AGC_WINDOWS_PATH = 'C:\\Tools\\Git\\cmd;C:\\Program Files\\nodejs;C:\\Users\\Administrator\\.cargo\\bin;C:\\Program Files (x86)\\NSIS;C:\\Tools\\ossutil;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\'
}
parameters {
@@ -28,48 +28,50 @@ pipeline {
stages {
stage('Checkout') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: "*/${params.SOURCE_BRANCH}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'CleanBeforeCheckout'],
[$class: 'CloneOption', shallow: false, noTags: false, timeout: 30],
],
userRemoteConfigs: [[
url: env.GIT_REMOTE_URL,
credentialsId: env.GIT_REMOTE_CREDENTIAL_ID,
refspec: "+refs/heads/${params.SOURCE_BRANCH}:refs/remotes/origin/${params.SOURCE_BRANCH}",
]],
])
powershell '''
$ErrorActionPreference = 'Stop'
$commit = $env:COMMIT_HASH.Trim()
if ($commit) {
if ($commit -notmatch '^[0-9a-fA-F]{7,64}$') {
throw 'COMMIT_HASH 必须是 7-64 位十六进制 Git commit。'
withEnv(["PATH=${env.AGC_WINDOWS_PATH}"]) {
checkout([
$class: 'GitSCM',
branches: [[name: "*/${params.SOURCE_BRANCH}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'CleanBeforeCheckout'],
[$class: 'CloneOption', shallow: false, noTags: false, timeout: 30],
],
userRemoteConfigs: [[
url: env.GIT_REMOTE_URL,
credentialsId: env.GIT_REMOTE_CREDENTIAL_ID,
refspec: "+refs/heads/${params.SOURCE_BRANCH}:refs/remotes/origin/${params.SOURCE_BRANCH}",
]],
])
powershell '''
$ErrorActionPreference = 'Stop'
$commit = $env:COMMIT_HASH.Trim()
if ($commit) {
if ($commit -notmatch '^[0-9a-fA-F]{7,64}$') {
throw 'COMMIT_HASH 必须是 7-64 位十六进制 Git commit。'
}
git cat-file -e "${commit}^{commit}"
if ($LASTEXITCODE -ne 0) {
throw "COMMIT_HASH 不存在: $commit"
}
$branchRef = "refs/remotes/origin/$($env:SOURCE_BRANCH)"
git merge-base --is-ancestor $commit $branchRef
if ($LASTEXITCODE -ne 0) {
throw "COMMIT_HASH 不属于 SOURCE_BRANCH: $($env:SOURCE_BRANCH)"
}
git checkout --detach $commit
}
git cat-file -e "${commit}^{commit}"
if ($LASTEXITCODE -ne 0) {
throw "COMMIT_HASH 不存在: $commit"
}
$branchRef = "refs/remotes/origin/$($env:SOURCE_BRANCH)"
git merge-base --is-ancestor $commit $branchRef
if ($LASTEXITCODE -ne 0) {
throw "COMMIT_HASH 不属于 SOURCE_BRANCH: $($env:SOURCE_BRANCH)"
}
git checkout --detach $commit
}
$resolved = (git rev-parse HEAD).Trim()
Set-Content -Path '.jenkins-source-commit' -Value $resolved -NoNewline
Write-Host "源码 commit=$resolved"
'''
$resolved = (git rev-parse HEAD).Trim()
Set-Content -Path '.jenkins-source-commit' -Value $resolved -NoNewline
Write-Host "源码 commit=$resolved"
'''
}
}
}
stage('Toolchain preflight') {
steps {
withEnv(["OSSUTIL_BIN=${params.OSSUTIL_BIN}"]) {
withEnv(["PATH=${env.AGC_WINDOWS_PATH}", "OSSUTIL_BIN=${params.OSSUTIL_BIN}"]) {
powershell '''
$ErrorActionPreference = 'Stop'
$actualNpm = (npm --version).Trim()
@@ -98,16 +100,19 @@ pipeline {
stage('Install dependencies') {
steps {
powershell '''
$ErrorActionPreference = 'Stop'
npm ci --no-audit --no-fund
'''
withEnv(["PATH=${env.AGC_WINDOWS_PATH}"]) {
powershell '''
$ErrorActionPreference = 'Stop'
npm ci --no-audit --no-fund
'''
}
}
}
stage('Build and upload') {
steps {
withEnv([
"PATH=${env.AGC_WINDOWS_PATH}",
"OSSUTIL_BIN=${params.OSSUTIL_BIN}",
"AGC_UPDATE_RELEASE_NOTES=${params.AGC_UPDATE_RELEASE_NOTES}",
]) {