feat(push): FCM via MAX server — oneme flavor, dedicated FCM workflow, opcode 22, notifications + CI/lint fixes

This commit is contained in:
klockky
2026-05-15 18:14:22 +03:00
parent 0a9780a024
commit 75ccc2e694
20 changed files with 647 additions and 203 deletions
+91
View File
@@ -0,0 +1,91 @@
name: Build Android (FCM)
on:
workflow_dispatch:
push:
branches:
- main
- master
paths:
- 'lib/**'
- 'android/**'
- 'pubspec.yaml'
- '.github/workflows/build-android-fcm.yml'
pull_request:
paths:
- 'lib/**'
- 'android/**'
- 'pubspec.yaml'
- '.github/workflows/build-android-fcm.yml'
jobs:
build-android-fcm:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.41.5'
channel: 'stable'
- name: Get dependencies
run: flutter pub get
- name: Configure Gradle
run: |
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
- name: Build Universal APK
run: flutter build apk --release --flavor oneme
- name: Build Split APKs
run: flutter build apk --release --split-per-abi --flavor oneme
- name: Upload Universal APK
uses: actions/upload-artifact@v4
with:
name: komet-android-fcm-universal
path: build/app/outputs/flutter-apk/app-oneme-release.apk
retention-days: 30
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-fcm-arm64-v8a
path: build/app/outputs/flutter-apk/app-oneme-arm64-v8a-release.apk
retention-days: 30
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-fcm-armeabi-v7a
path: build/app/outputs/flutter-apk/app-oneme-armeabi-v7a-release.apk
retention-days: 30
- name: Upload x86_64 APK
uses: actions/upload-artifact@v4
with:
name: komet-android-fcm-x86_64
path: build/app/outputs/flutter-apk/app-oneme-x86_64-release.apk
retention-days: 30
- name: Build App Bundle
run: flutter build appbundle --release --flavor oneme
- name: Upload App Bundle artifact
uses: actions/upload-artifact@v4
with:
name: komet-android-fcm-aab
path: build/app/outputs/bundle/onemeRelease/app-oneme-release.aab
retention-days: 30
+9 -9
View File
@@ -45,47 +45,47 @@ jobs:
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
- name: Build Universal APK
run: flutter build apk --release
run: flutter build apk --release --flavor komet
- name: Build Split APKs
run: flutter build apk --release --split-per-abi
run: flutter build apk --release --split-per-abi --flavor komet
- name: Upload Universal APK
uses: actions/upload-artifact@v4
with:
name: komet-android-universal
path: build/app/outputs/flutter-apk/app-release.apk
path: build/app/outputs/flutter-apk/app-komet-release.apk
retention-days: 30
- name: Upload arm64-v8a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-arm64-v8a
path: build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
path: build/app/outputs/flutter-apk/app-komet-arm64-v8a-release.apk
retention-days: 30
- name: Upload armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
name: komet-android-armeabi-v7a
path: build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk
path: build/app/outputs/flutter-apk/app-komet-armeabi-v7a-release.apk
retention-days: 30
- name: Upload x86_64 APK
uses: actions/upload-artifact@v4
with:
name: komet-android-x86_64
path: build/app/outputs/flutter-apk/app-x86_64-release.apk
path: build/app/outputs/flutter-apk/app-komet-x86_64-release.apk
retention-days: 30
- name: Build App Bundle
run: flutter build appbundle --release
run: flutter build appbundle --release --flavor komet
- name: Upload App Bundle artifact
uses: actions/upload-artifact@v4
with:
name: komet-android-aab
path: build/app/outputs/bundle/release/app-release.aab
path: build/app/outputs/bundle/kometRelease/app-komet-release.aab
retention-days: 30
+15 -2
View File
@@ -13,10 +13,17 @@ jobs:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: 'stable'
flutter-version: '3.41.5'
channel: 'stable'
- name: Install dependencies
run: flutter pub get
@@ -24,5 +31,11 @@ jobs:
- name: Flutter analyze
run: flutter analyze
- name: Configure Gradle
run: |
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
- name: Build Android APK
run: flutter build apk --release
run: flutter build apk --release --flavor komet
+69 -9
View File
@@ -6,17 +6,23 @@ on:
- 'main'
jobs:
analyze-and-build-all:
android:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: 'stable'
flutter-version: '3.41.5'
channel: 'stable'
- name: Install dependencies
run: flutter pub get
@@ -24,8 +30,34 @@ jobs:
- name: Flutter analyze
run: flutter analyze
- name: Configure Gradle
run: |
mkdir -p ~/.gradle
echo "org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m" >> ~/.gradle/gradle.properties
echo "kotlin.daemon.jvmargs=-Xmx1536m" >> ~/.gradle/gradle.properties
- name: Build Android APK
run: flutter build apk --release
run: flutter build apk --release --flavor komet
web-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.41.5'
channel: 'stable'
- name: Install Linux desktop dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev
- name: Install dependencies
run: flutter pub get
- name: Build Web
run: flutter build web --release
@@ -33,13 +65,41 @@ jobs:
- name: Build Linux
run: flutter build linux --release
windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.41.5'
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build Windows
run: flutter build windows --release
- name: Build iOS (only macOS runners)
if: runner.os == 'macOS'
run: flutter build ios --release
apple:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build macOS (only macOS runners)
if: runner.os == 'macOS'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.41.5'
channel: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Build iOS
run: flutter build ios --release --no-codesign
- name: Build macOS
run: flutter build macos --release