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 fvm flutter pub get
# 拼接附加构建参数 # 拼接附加构建参数 (Groovy 中 \$ 转义 $,避免被当作 Jenkins 变量插值)
EXTRA_ARGS="" EXTRA_ARGS=""
if [ ! -z "${params.VERSION_NAME}" ]; then 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 fi
if [ ! -z "${params.BUILD_NUMBER}" ]; then 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 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" echo " - 开始构建 APK 参数: \$EXTRA_ARGS"
fvm flutter build apk --release \\$EXTRA_ARGS fvm flutter build apk --release \$EXTRA_ARGS
""" """
echo " ✅ ${currentApp} Android APK 构建完成" echo " ✅ ${currentApp} Android APK 构建完成"
} }