修复 AGC Jenkins 空参数处理
COMMIT_HASH 为空时按空字符串处理 OSSUTIL_BIN 为空时按默认命令处理 补充 Windows 构建节点参数行为说明
This commit is contained in:
@@ -54,6 +54,7 @@ AGC 发布流水线使用 `jenkins/Jenkinsfile.ai-game-creator-shell-build`,
|
||||
10.9.7、Rust 1.96.0、Visual Studio Build Tools(MSVC 与 Windows SDK)、NSIS、Git 和 ossutil;
|
||||
Jenkins Agent 服务必须能在同一用户环境中找到这些命令。流水线执行根 workspace 的 `npm ci`,然后调用
|
||||
`npm run ai-game-creator-shell:release:upload`,并归档 Windows 安装包、`latest.json` 与源码 commit。
|
||||
流水线会将未导出的空参数按空字符串处理:`COMMIT_HASH` 留空时沿用 Jenkins SCM 当前提交,`OSSUTIL_BIN` 留空时使用节点 PATH 中的 `ossutil`,不会因 PowerShell 对空环境变量调用 `.Trim()` 而提前失败。
|
||||
|
||||
Jenkins Job 在“Build and upload”阶段通过受保护凭据 ID `AliyunAccessKeyId` 和
|
||||
`AliyunaccessKeySecret` 注入 AccessKey,仅在当前进程运行时传给 ossutil,不写入仓库、workspace 或构建日志;
|
||||
|
||||
@@ -47,7 +47,7 @@ pipeline {
|
||||
if ($LASTEXITCODE -ne 0) { throw 'Git fetch 分支失败' }
|
||||
& $git checkout --detach "origin/$($env:SOURCE_BRANCH)"
|
||||
}
|
||||
$commit = $env:COMMIT_HASH.Trim()
|
||||
$commit = ([string]$env:COMMIT_HASH).Trim()
|
||||
if ($commit) {
|
||||
if ($commit -notmatch '^[0-9a-fA-F]{7,64}$') {
|
||||
throw 'COMMIT_HASH 必须是 7-64 位十六进制 Git commit。'
|
||||
@@ -85,7 +85,7 @@ pipeline {
|
||||
throw "Windows AGC 节点缺少 $commandName,请先安装并加入 Jenkins Agent PATH。"
|
||||
}
|
||||
}
|
||||
$ossutil = $env:OSSUTIL_BIN.Trim()
|
||||
$ossutil = ([string]$env:OSSUTIL_BIN).Trim()
|
||||
if (-not $ossutil) { $ossutil = 'ossutil' }
|
||||
if (-not (Get-Command $ossutil -ErrorAction SilentlyContinue)) {
|
||||
throw "Windows AGC 节点缺少 ossutil:$ossutil"
|
||||
|
||||
Reference in New Issue
Block a user