修正AGC Windows流水线环境配置
通过withEnv注入Windows构建工具路径 覆盖源码检出、依赖安装和构建上传阶段
This commit is contained in:
@@ -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}",
|
||||
]) {
|
||||
|
||||
Reference in New Issue
Block a user