diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 2cb73c15..d0b2107f 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -101,7 +101,119 @@ jobs: echo "📋 Tasks executed:" echo " ✅ Code checkout" echo " ✅ Version extraction" - echo " ✅ Flutter environment output" - echo " ✅ CI environment output" echo "" - echo "🔚 No further operations will be performed." + echo "🚀 Next steps: Building Flutter artifacts..." + + # 构建Flutter制品任务 + build-artifacts: + name: 🏗️ Build Flutter Artifacts + runs-on: sky + needs: basic-setup + steps: + # 1. 检出代码 + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # 2. 设置Flutter环境 + - name: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.x' + channel: 'stable' + + # 3. 获取版本信息 + - name: Get Version Info + id: version-info + run: | + echo "📊 Using version from basic-setup job" + echo "NEXT_VERSION=${{ env.NEXT_VERSION }}" + echo "NEXT_TAG=${{ env.NEXT_TAG }}" + + # 4. 构建APK文件 + - name: Build APK + run: | + echo "🏗️ Building APK artifact..." + + # 格式化文件名:sky-star-lock-develop-1-4.609.apk + APK_FILENAME="sky-star-lock-develop-${{ env.NEXT_VERSION }}.apk" + APK_FILENAME=$(echo "$APK_FILENAME" | sed 's/v//g' | sed 's/\./-/g') + APK_FILENAME="sky-star-lock-develop-$APK_FILENAME.apk" + + echo "📁 APK filename: $APK_FILENAME" + + # 构建APK + flutter build apk --release --flavor sky + + # 重命名APK文件 + mv build/app/outputs/flutter-apk/app-sky-release.apk "$APK_FILENAME" + + echo "✅ APK build completed: $APK_FILENAME" + + # 5. 构建AAB文件 + - name: Build AAB + run: | + echo "🏗️ Building AAB artifact..." + + # 格式化文件名:sky-star-lock-develop-1-4.609.aab + AAB_FILENAME="sky-star-lock-develop-${{ env.NEXT_VERSION }}.aab" + AAB_FILENAME=$(echo "$AAB_FILENAME" | sed 's/v//g' | sed 's/\./-/g') + AAB_FILENAME="sky-star-lock-develop-$AAB_FILENAME.aab" + + echo "📁 AAB filename: $AAB_FILENAME" + + # 构建AAB + flutter build appbundle --release --flavor sky + + # 重命名AAB文件 + mv build/app/outputs/bundle/skyRelease/app-sky-release.aab "$AAB_FILENAME" + + echo "✅ AAB build completed: $AAB_FILENAME" + + # 6. 构建iOS IPA文件(如果支持iOS构建) + - name: Build iOS IPA + if: runner.os == 'macos' + run: | + echo "🏗️ Building iOS IPA artifact..." + + # 格式化文件名:sky-star-lock-develop-1-4.609.ipa + IPA_FILENAME="sky-star-lock-develop-${{ env.NEXT_VERSION }}.ipa" + IPA_FILENAME=$(echo "$IPA_FILENAME" | sed 's/v//g' | sed 's/\./-/g') + IPA_FILENAME="sky-star-lock-develop-$IPA_FILENAME.ipa" + + echo "📁 IPA filename: $IPA_FILENAME" + + # 构建iOS IPA + flutter build ipa --release --flavor sky + + # 重命名IPA文件 + mv build/ios/ipa/*.ipa "$IPA_FILENAME" + + echo "✅ iOS IPA build completed: $IPA_FILENAME" + + # 7. 上传制品 + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: flutter-artifacts-develop + path: | + sky-star-lock-develop-*.apk + sky-star-lock-develop-*.aab + sky-star-lock-develop-*.ipa + retention-days: 30 + + # 8. 构建完成通知 + - name: Build Completion + run: | + echo "🎉 Flutter artifacts build completed successfully!" + echo "" + echo "📦 Artifacts generated:" + echo " ✅ APK: sky-star-lock-develop-*.apk" + echo " ✅ AAB: sky-star-lock-develop-*.aab" + if [ "${{ runner.os }}" == "macos" ]; then + echo " ✅ IPA: sky-star-lock-develop-*.ipa" + fi + echo "" + echo "🏷️ Version: ${{ env.NEXT_VERSION }}" + echo "📁 Files available in artifacts section"