diff --git a/jenkins/Jenkinsfile.ai-game-creator-shell-build b/jenkins/Jenkinsfile.ai-game-creator-shell-build index 7d0cc0947..0619ec54e 100644 --- a/jenkins/Jenkinsfile.ai-game-creator-shell-build +++ b/jenkins/Jenkinsfile.ai-game-creator-shell-build @@ -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}", ]) {