legacy skia build next to impeller arm64

This commit is contained in:
Fabian Freund
2026-07-30 05:02:43 +02:00
parent f969055b21
commit 3a942a57a6
4 changed files with 44 additions and 9 deletions
+7 -3
View File
@@ -147,9 +147,13 @@ jobs:
IPTPROXY_SOURCE: ${{ runner.temp }}/IPtProxy IPTPROXY_SOURCE: ${{ runner.temp }}/IPtProxy
run: melos run build-go-runtime --no-select run: melos run build-go-runtime --no-select
- name: Build APK (Alpha) - name: Build APK (Alpha, Impeller)
if: steps.build-type.outputs.is_prerelease == 'true' if: steps.build-type.outputs.is_prerelease == 'true'
run: melos run build-browser-alpha --no-select run: melos run build-browser-alpha-impeller --no-select
- name: Build APK (Alpha, Legacy renderer)
if: steps.build-type.outputs.is_prerelease == 'true'
run: melos run build-browser-alpha-legacy --no-select
- name: Build APK (Stable) - name: Build APK (Stable)
if: steps.build-type.outputs.is_prerelease == 'false' if: steps.build-type.outputs.is_prerelease == 'false'
@@ -164,7 +168,7 @@ jobs:
if: steps.build-type.outputs.is_prerelease == 'true' if: steps.build-type.outputs.is_prerelease == 'true'
uses: ncipollo/release-action@v1.17.0 uses: ncipollo/release-action@v1.17.0
with: with:
artifacts: "apps/weblibre/build/app/outputs/apk/alpha/release/*.apk" artifacts: "apps/weblibre/build/app/outputs/apk/alphaImpeller/release/*.apk,apps/weblibre/build/app/outputs/apk/alphaLegacy/release/*.apk"
prerelease: true prerelease: true
- name: Create github artifact release (Full) - name: Create github artifact release (Full)
+27 -2
View File
@@ -43,6 +43,10 @@ android {
targetSdk = 37 targetSdk = 37
versionCode = flutterVersionCode.toInteger() versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName versionName = flutterVersionName
// Whether the Flutter engine renders via Impeller or the legacy Skia
// backend. Read by io.flutter.embedding.android.EnableImpeller in
// AndroidManifest.xml. Overridden per-flavor below.
manifestPlaceholders = [enableImpeller: "true"]
} }
flavorDimensions "track" flavorDimensions "track"
@@ -51,11 +55,32 @@ android {
dimension "track" dimension "track"
manifestPlaceholders = [appName: "WebLibre"] manifestPlaceholders = [appName: "WebLibre"]
} }
alpha { // Same alpha release slot (applicationId/versionName suffix), split into
// two variants so Impeller and the legacy Skia renderer can be compared
// side by side. The renderer is chosen at Flutter engine startup via a
// manifest meta-data flag and cannot be switched at runtime, hence two
// separate builds rather than a single toggle.
alphaImpeller {
dimension "track" dimension "track"
applicationIdSuffix ".alpha" applicationIdSuffix ".alpha"
versionNameSuffix "-alpha" versionNameSuffix "-alpha"
manifestPlaceholders = [appName: "WebLibre Alpha"] manifestPlaceholders = [appName: "WebLibre Alpha", enableImpeller: "true"]
}
alphaLegacy {
dimension "track"
applicationIdSuffix ".alpha"
versionNameSuffix "-alpha"
manifestPlaceholders = [appName: "WebLibre Alpha (Legacy)", enableImpeller: "false"]
}
}
sourceSets {
// Both alpha variants share the existing alpha launcher icon/branding.
alphaImpeller {
res.srcDirs += 'src/alpha/res'
}
alphaLegacy {
res.srcDirs += 'src/alpha/res'
} }
} }
@@ -271,7 +271,7 @@
<meta-data <meta-data
android:name="io.flutter.embedding.android.EnableImpeller" android:name="io.flutter.embedding.android.EnableImpeller"
android:value="true" /> android:value="${enableImpeller}" />
<!-- HCPP (Hybrid Composition++) is still experimental and mis-maps <!-- HCPP (Hybrid Composition++) is still experimental and mis-maps
platform-view touch coordinates when the activity runs in a resized platform-view touch coordinates when the activity runs in a resized
+9 -3
View File
@@ -94,9 +94,15 @@ melos:
set -e set -e
cd apps/weblibre cd apps/weblibre
flutter build apk --release --flavor stable --target-platform android-arm,android-arm64 --split-per-abi --no-tree-shake-icons flutter build apk --release --flavor stable --target-platform android-arm,android-arm64 --split-per-abi --no-tree-shake-icons
build-browser-alpha: build-browser-alpha-impeller:
description: Build alpha release APK split per ABI (side-by-side installable with stable) description: Build arm64 alpha release APK with Impeller enabled (side-by-side installable with stable)
run: | run: |
set -e set -e
cd apps/weblibre cd apps/weblibre
flutter build apk --release --flavor alpha --target-platform android-arm,android-arm64 --split-per-abi --no-tree-shake-icons flutter build apk --release --flavor alphaImpeller --target-platform android-arm64 --no-tree-shake-icons
build-browser-alpha-legacy:
description: Build arm64 alpha release APK with the legacy Skia renderer (side-by-side installable with stable)
run: |
set -e
cd apps/weblibre
flutter build apk --release --flavor alphaLegacy --target-platform android-arm64 --no-tree-shake-icons