diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index cb911115..d32e7074 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -89,10 +89,15 @@ jobs: echo "🏷️ Next tag: $NEXT_TAG" echo "📈 Increment count: $INCREMENT_COUNT" - # 输出到Gitea Actions环境变量 - echo "NEXT_VERSION=$NEXT_VERSION" >> $GITHUB_ENV - echo "NEXT_TAG=$NEXT_TAG" >> $GITHUB_ENV - echo "INCREMENT_COUNT=$INCREMENT_COUNT" >> $GITHUB_ENV + # 输出到Gitea Actions环境变量和输出变量 + echo "NEXT_VERSION=$NEXT_VERSION" >> $GITEA_ENV + echo "NEXT_TAG=$NEXT_TAG" >> $GITEA_ENV + echo "INCREMENT_COUNT=$INCREMENT_COUNT" >> $GITEA_ENV + + # 设置输出变量供后续任务使用 + echo "::set-output name=NEXT_VERSION::$NEXT_VERSION" + echo "::set-output name=NEXT_TAG::$NEXT_TAG" + echo "::set-output name=INCREMENT_COUNT::$INCREMENT_COUNT" # 输出版本信息 echo "✅ Version extraction completed" @@ -127,8 +132,19 @@ jobs: BUILD_NUMBER=$(date +%Y%m%d%H) echo "📅 Build number: $BUILD_NUMBER" - # 格式化版本号用于文件名 - VERSION_FOR_FILENAME=$(echo "${{ env.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + # 获取版本信息(从basic-setup任务传递) + echo "🔍 Getting version info from basic-setup job..." + echo "NEXT_VERSION: ${{ needs.basic-setup.outputs.NEXT_VERSION }}" + + # 设置默认版本号,如果环境变量为空 + if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then + VERSION_FOR_FILENAME="1-0-0" + echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME" + else + # 格式化版本号用于文件名 + VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + echo "✅ Version found: $VERSION_FOR_FILENAME" + fi # 设置APK文件名 APK_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.apk" @@ -151,8 +167,19 @@ jobs: BUILD_NUMBER=$(date +%Y%m%d%H) echo "📅 Build number: $BUILD_NUMBER" - # 格式化版本号用于文件名 - VERSION_FOR_FILENAME=$(echo "${{ env.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + # 获取版本信息(从basic-setup任务传递) + echo "🔍 Getting version info from basic-setup job..." + echo "NEXT_VERSION: ${{ needs.basic-setup.outputs.NEXT_VERSION }}" + + # 设置默认版本号,如果环境变量为空 + if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then + VERSION_FOR_FILENAME="1-0-0" + echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME" + else + # 格式化版本号用于文件名 + VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + echo "✅ Version found: $VERSION_FOR_FILENAME" + fi # 设置AAB文件名 AAB_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.aab" @@ -176,14 +203,34 @@ jobs: BUILD_NUMBER=$(date +%Y%m%d%H) echo "📅 Build number: $BUILD_NUMBER" - # 格式化版本号用于文件名 - VERSION_FOR_FILENAME=$(echo "${{ env.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + # 获取版本信息(从basic-setup任务传递) + echo "🔍 Getting version info from basic-setup job..." + echo "NEXT_VERSION: ${{ needs.basic-setup.outputs.NEXT_VERSION }}" + + # 设置默认版本号,如果环境变量为空 + if [ -z "${{ needs.basic-setup.outputs.NEXT_VERSION }}" ]; then + VERSION_FOR_FILENAME="1-0-0" + echo "⚠️ Version not found, using default: $VERSION_FOR_FILENAME" + else + # 格式化版本号用于文件名 + VERSION_FOR_FILENAME=$(echo "${{ needs.basic-setup.outputs.NEXT_VERSION }}" | sed 's/v//g' | sed 's/\./-/g') + echo "✅ Version found: $VERSION_FOR_FILENAME" + fi # 设置IPA文件名 IPA_FILENAME="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa" echo "📁 IPA filename: $IPA_FILENAME" - # 构建iOS IPA,使用新的构建参数 + # 配置iOS自动签名(CI环境使用自动签名) + echo "🔧 Configuring iOS automatic code signing for CI environment..." + cd ios + # 设置自动签名 + /usr/libexec/PlistBuddy -c "Set :CODE_SIGN_STYLE Automatic" Runner.xcodeproj/project.pbxproj + /usr/libexec/PlistBuddy -c "Delete :PROVISIONING_PROFILE_SPECIFIER" Runner.xcodeproj/project.pbxproj + /usr/libexec/PlistBuddy -c "Delete :PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" Runner.xcodeproj/project.pbxproj + cd .. + + # 构建iOS IPA,使用新的构建参数和自动签名 flutter build ipa --no-tree-shake-icons --release --flavor sky -t lib/main_sky_full.dart --build-number=$BUILD_NUMBER --build-name="sky-star-lock-release-$VERSION_FOR_FILENAME.ipa" # 重命名IPA文件