fix(ci): avoid Groovy GString parse errors in Jenkins shell block
Jenkins CPS Groovy rejects patterns like if [ "${params.X}" = "true" ].
Assign params to shell variables first, then use $VAR in tests and EXTRA_ARGS.
Made-with: Cursor
This commit is contained in:
parent
0bfb1e67e0
commit
f072df7b76
|
|
@ -135,24 +135,27 @@ pipeline {
|
|||
[ -f "\\$HOME/.zshrc" ] && source "\\$HOME/.zshrc" > /dev/null 2>&1
|
||||
cd apps/${currentApp}
|
||||
|
||||
if [ "${params.CLEAN_BUILD}" = "true" ]; then
|
||||
# 先写入 shell 变量,避免 GString 里出现 "\${params.xxx}" 触发 Groovy 解析错误
|
||||
CLEAN_BUILD='${params.CLEAN_BUILD}'
|
||||
VERSION_NAME='${params.VERSION_NAME}'
|
||||
BUILD_NUMBER='${params.BUILD_NUMBER}'
|
||||
BUILD_ENV='${params.BUILD_ENVIRONMENT}'
|
||||
|
||||
if [ "\$CLEAN_BUILD" = "true" ]; then
|
||||
echo " - 执行 flutter clean..."
|
||||
fvm flutter clean
|
||||
fi
|
||||
|
||||
fvm flutter pub get
|
||||
|
||||
# 拼接附加构建参数 (Groovy 中 \$ 转义 $,避免被当作 Jenkins 变量插值)
|
||||
EXTRA_ARGS=""
|
||||
if [ ! -z "${params.VERSION_NAME}" ]; then
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --build-name=${params.VERSION_NAME}"
|
||||
if [ -n "\$VERSION_NAME" ]; then
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --build-name=\$VERSION_NAME"
|
||||
fi
|
||||
if [ ! -z "${params.BUILD_NUMBER}" ]; then
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --build-number=${params.BUILD_NUMBER}"
|
||||
if [ -n "\$BUILD_NUMBER" ]; then
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --build-number=\$BUILD_NUMBER"
|
||||
fi
|
||||
|
||||
# 注入环境变量参数用于代码判断 (如需要)
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --dart-define=APP_ENV=${params.BUILD_ENVIRONMENT}"
|
||||
EXTRA_ARGS="\$EXTRA_ARGS --dart-define=APP_ENV=\$BUILD_ENV"
|
||||
|
||||
echo " - 开始构建 APK 参数: \$EXTRA_ARGS"
|
||||
fvm flutter build apk --release \$EXTRA_ARGS
|
||||
|
|
|
|||
Loading…
Reference in New Issue