fix(ci): escape EXTRA_ARGS in Jenkinsfile GString

Groovy interpolated $EXTRA_ARGS as a pipeline binding property, which
raised MissingPropertyException and skipped flutter build apk. Prefix
dollar signs with backslash so the shell receives literal $EXTRA_ARGS.

Made-with: Cursor
This commit is contained in:
YuanXuan 2026-03-24 10:17:26 +08:00
parent 84df0d013f
commit 0bfb1e67e0
1 changed files with 6 additions and 6 deletions

12
Jenkinsfile vendored
View File

@ -142,20 +142,20 @@ pipeline {
fvm flutter pub get
# 拼接附加构建参数
# 拼接附加构建参数 (Groovy 中 \$ 转义 $,避免被当作 Jenkins 变量插值)
EXTRA_ARGS=""
if [ ! -z "${params.VERSION_NAME}" ]; then
EXTRA_ARGS="\\$EXTRA_ARGS --build-name=${params.VERSION_NAME}"
EXTRA_ARGS="\$EXTRA_ARGS --build-name=${params.VERSION_NAME}"
fi
if [ ! -z "${params.BUILD_NUMBER}" ]; then
EXTRA_ARGS="\\$EXTRA_ARGS --build-number=${params.BUILD_NUMBER}"
EXTRA_ARGS="\$EXTRA_ARGS --build-number=${params.BUILD_NUMBER}"
fi
# 注入环境变量参数用于代码判断 (如需要)
EXTRA_ARGS="\\$EXTRA_ARGS --dart-define=APP_ENV=${params.BUILD_ENVIRONMENT}"
EXTRA_ARGS="\$EXTRA_ARGS --dart-define=APP_ENV=${params.BUILD_ENVIRONMENT}"
echo " - 开始构建 APK 参数: \\$EXTRA_ARGS"
fvm flutter build apk --release \\$EXTRA_ARGS
echo " - 开始构建 APK 参数: \$EXTRA_ARGS"
fvm flutter build apk --release \$EXTRA_ARGS
"""
echo " ✅ ${currentApp} Android APK 构建完成"
}