diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 2407e60..07fb1c7 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -7,6 +7,8 @@ on: env: PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin ANDROID_HOME: /Users/freetlab/Library/Android/sdk + KEYSTORE_PATH: /Users/freetlab/.openclaw/workspace/.secure/pluriwave/pluriwave-upload.jks + KEYSTORE_ALIAS: pluriwave-upload jobs: analizar: @@ -16,8 +18,6 @@ jobs: - uses: actions/checkout@v4 - name: Obtener dependencias run: flutter pub get - #- name: Generar l10n - # run: flutter gen-l10n - name: Analizar código run: flutter analyze --no-fatal-infos --no-fatal-warnings @@ -29,6 +29,21 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Configurar keystore de firma + env: + KEYSTORE_PASSWORD: ${{ secrets.PLURIWAVE_KEYSTORE_PASSWORD }} + run: | + echo "Verificando keystore..." + if [ ! -f "$KEYSTORE_PATH" ]; then + echo "ERROR: Keystore no encontrado en $KEYSTORE_PATH" + exit 1 + fi + echo "storeFile=$KEYSTORE_PATH" > android/key.properties + echo "storePassword=$KEYSTORE_PASSWORD" >> android/key.properties + echo "keyAlias=$KEYSTORE_ALIAS" >> android/key.properties + echo "keyPassword=$KEYSTORE_PASSWORD" >> android/key.properties + echo "✅ Keystore configurado" + - name: Bump versión patch + commit run: | git config user.name "ShanaiaBot" @@ -59,15 +74,17 @@ jobs: - name: Obtener dependencias run: flutter pub get - #- name: Generar l10n - # run: flutter gen-l10n - - name: Build APK release run: flutter build apk --release - name: Build AAB release run: flutter build appbundle --release + - name: Verificar firma del AAB + run: | + echo "Verificando certificado del AAB..." + keytool -list -v -keystore "$KEYSTORE_PATH" -alias $KEYSTORE_ALIAS -storepass "$KEYSTORE_PASSWORD" 2>/dev/null | grep "SHA1:\|SHA256:" || echo "No se pudo verificar" + - name: Publicar en ftl-builds (Zimaboard) run: | VERSION="${{ steps.version.outputs.version }}" @@ -94,7 +111,7 @@ jobs: BOT_TOKEN=$(plutil -extract 'EnvironmentVariables:TELEGRAM_BOT_TOKEN' raw /Users/freetlab/Library/LaunchAgents/ai.openclaw.gateway.plist 2>/dev/null || echo "") if [ -z "$BOT_TOKEN" ]; then exit 0; fi if [ "${{ job.status }}" = "success" ]; then - MSG="✅ *Pluriwave* v${VERSION} build OK · ${COMMIT}%0AAPK + AAB en builds.freetimelab.es" + MSG="✅ *Pluriwave* v${VERSION} build OK (firma release) · ${COMMIT}%0AAPK + AAB en builds.freetimelab.es" else MSG="❌ *Pluriwave* v${VERSION} build FAILED · ${COMMIT}" fi diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 4309abf..5a07010 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -1,7 +1,6 @@ plugins { id("com.android.application") id("kotlin-android") - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } @@ -20,21 +19,24 @@ android { } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "es.freetimelab.pluriwave" - // You can update the following values to match your application needs. - // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } + signingConfigs { + create("release") { + // Configurado por el workflow via android/key.properties + // Keystore: ~/.openclaw/workspace/.secure/pluriwave/pluriwave-upload.jks + // Alias: pluriwave-upload + } + } + buildTypes { release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.getByName("debug") + signingConfig = signingConfigs.getByName("release") } } }