From 3e44b3ddb7ab82464aa26726930508a113ded6b3 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 11:17:45 +0200 Subject: [PATCH 1/9] chore: bump Flutter to 3.32.2 --- .docker/android-sdk.dockerfile | 2 +- .github/actions/flutter-deps/action.yml | 2 +- .github/workflows/mobile-builds.yml | 7 ------- .github/workflows/roll-sdk-packages.yml | 2 +- app_theme/pubspec.lock | 2 +- app_theme/pubspec.yaml | 2 +- packages/komodo_ui_kit/pubspec.lock | 2 +- packages/komodo_ui_kit/pubspec.yaml | 2 +- pubspec.yaml | 2 +- 9 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.docker/android-sdk.dockerfile b/.docker/android-sdk.dockerfile index 91d2291c80..4fea79202c 100644 --- a/.docker/android-sdk.dockerfile +++ b/.docker/android-sdk.dockerfile @@ -36,7 +36,7 @@ RUN set -o xtrace \ && sudo chown -R $USER:$USER /opt \ && cd /opt \ && sudo apt-get update \ - && sudo apt-get install -y jq openjdk-17-jdk nodejs npm \ + && sudo apt-get install -y jq openjdk-21-jdk nodejs npm \ wget zip unzip git openssh-client curl bc software-properties-common build-essential \ ruby-full ruby-bundler libstdc++6 libpulse0 libglu1-mesa locales lcov libsqlite3-dev --no-install-recommends \ # For Linux build diff --git a/.github/actions/flutter-deps/action.yml b/.github/actions/flutter-deps/action.yml index b621462237..7b959ca104 100644 --- a/.github/actions/flutter-deps/action.yml +++ b/.github/actions/flutter-deps/action.yml @@ -7,7 +7,7 @@ runs: uses: subosito/flutter-action@v2 with: # NB! Keep up-to-date with the flutter version used for development - flutter-version: "3.32.0" + flutter-version: "3.32.2" channel: "stable" - name: Prepare build directory diff --git a/.github/workflows/mobile-builds.yml b/.github/workflows/mobile-builds.yml index 1013850c57..20062b0c0c 100644 --- a/.github/workflows/mobile-builds.yml +++ b/.github/workflows/mobile-builds.yml @@ -68,13 +68,6 @@ jobs: FEEDBACK_PRODUCTION_URL: ${{ secrets.FEEDBACK_PRODUCTION_URL }} FEEDBACK_TEST_URL: ${{ secrets.FEEDBACK_TEST_URL }} - # Flutter build with `--no-pub` flag fails on Android due to a - # known regression with the build system in 3.32.0. - # https://github.com/flutter/flutter/issues/169336 - - name: Temporary workaround for Android build issue - if: ${{ matrix.platform == 'Android' }} - run: | - flutter build apk --config-only - name: Build for ${{ matrix.platform }} env: diff --git a/.github/workflows/roll-sdk-packages.yml b/.github/workflows/roll-sdk-packages.yml index c2e9b9eeac..44afcee392 100644 --- a/.github/workflows/roll-sdk-packages.yml +++ b/.github/workflows/roll-sdk-packages.yml @@ -45,7 +45,7 @@ jobs: uses: subosito/flutter-action@v2 with: # NB! Keep up-to-date with the flutter version used for development - flutter-version: "3.32.0" + flutter-version: "3.32.2" channel: "stable" - name: Determine configuration diff --git a/app_theme/pubspec.lock b/app_theme/pubspec.lock index 201413d56a..87babe51de 100644 --- a/app_theme/pubspec.lock +++ b/app_theme/pubspec.lock @@ -61,4 +61,4 @@ packages: version: "2.1.4" sdks: dart: ">=3.7.0-0 <4.0.0" - flutter: ">=3.29.2" + flutter: ">=3.32.2" diff --git a/app_theme/pubspec.yaml b/app_theme/pubspec.yaml index 6c5a98d6bd..002fdb1215 100644 --- a/app_theme/pubspec.yaml +++ b/app_theme/pubspec.yaml @@ -5,7 +5,7 @@ version: 0.0.1 environment: sdk: ">=3.6.0 <4.0.0" - flutter: ^3.29.2 + flutter: ^3.32.2 dependencies: flutter: diff --git a/packages/komodo_ui_kit/pubspec.lock b/packages/komodo_ui_kit/pubspec.lock index 80591e97ba..ceb7864694 100644 --- a/packages/komodo_ui_kit/pubspec.lock +++ b/packages/komodo_ui_kit/pubspec.lock @@ -196,4 +196,4 @@ packages: version: "1.1.1" sdks: dart: ">=3.7.0 <4.0.0" - flutter: ">=3.29.2" + flutter: ">=3.32.2" diff --git a/packages/komodo_ui_kit/pubspec.yaml b/packages/komodo_ui_kit/pubspec.yaml index fa80bbd5e9..e75ebd4b29 100644 --- a/packages/komodo_ui_kit/pubspec.yaml +++ b/packages/komodo_ui_kit/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: none environment: sdk: ">=3.6.0 <4.0.0" - flutter: ^3.29.2 + flutter: ^3.32.2 dependencies: flutter: diff --git a/pubspec.yaml b/pubspec.yaml index b964320881..b6b3b798c6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ environment: # the new formatting style may cause conflicts. This allows to run 3.7.0, but it will not # enforce the new formatting style until the mininum Dart version is updated. sdk: ">=3.6.0 <4.0.0" - flutter: ^3.32.0 + flutter: ^3.32.2 dependencies: ## ---- Flutter SDK From 2a0e6274378edd791b6c4261b651091491cab5b2 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 12:48:45 +0200 Subject: [PATCH 2/9] chore(ci): restore Android build workaround and add Docker workflow --- .github/workflows/docker-android-build.yml | 22 ++++++++++++++++++++++ .github/workflows/mobile-builds.yml | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 .github/workflows/docker-android-build.yml diff --git a/.github/workflows/docker-android-build.yml b/.github/workflows/docker-android-build.yml new file mode 100644 index 0000000000..c56a4713cd --- /dev/null +++ b/.github/workflows/docker-android-build.yml @@ -0,0 +1,22 @@ +name: Build Android Docker image + +on: + workflow_dispatch: + +jobs: + build-android-docker: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Android image + run: | + chmod +x .docker/build.sh + sh .docker/build.sh android release diff --git a/.github/workflows/mobile-builds.yml b/.github/workflows/mobile-builds.yml index 20062b0c0c..1013850c57 100644 --- a/.github/workflows/mobile-builds.yml +++ b/.github/workflows/mobile-builds.yml @@ -68,6 +68,13 @@ jobs: FEEDBACK_PRODUCTION_URL: ${{ secrets.FEEDBACK_PRODUCTION_URL }} FEEDBACK_TEST_URL: ${{ secrets.FEEDBACK_TEST_URL }} + # Flutter build with `--no-pub` flag fails on Android due to a + # known regression with the build system in 3.32.0. + # https://github.com/flutter/flutter/issues/169336 + - name: Temporary workaround for Android build issue + if: ${{ matrix.platform == 'Android' }} + run: | + flutter build apk --config-only - name: Build for ${{ matrix.platform }} env: From 51610381967c81fe5a43368f603fcc3f22de931b Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 13:32:16 +0200 Subject: [PATCH 3/9] chore(docs,build): bump remaining Flutter references to `3.32.2` --- .devcontainer/Dockerfile | 2 +- .docker/komodo-wallet-android.dockerfile | 2 +- .github/workflows/mobile-builds.yml | 2 +- docs/FLUTTER_VERSION.md | 6 +++--- docs/MULTIPLE_FLUTTER_VERSIONS.md | 16 ++++++++-------- pubspec.lock | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 64e2494eab..7e7ada0fe3 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,6 +1,6 @@ FROM docker.io/ubuntu:22.04 -ENV FLUTTER_VERSION="3.32.0" +ENV FLUTTER_VERSION="3.32.2" ENV USER="komodo" ENV USER_ID=1000 ENV PATH=$PATH:/opt/flutter/bin diff --git a/.docker/komodo-wallet-android.dockerfile b/.docker/komodo-wallet-android.dockerfile index f4103fdbbb..6abdc50d05 100644 --- a/.docker/komodo-wallet-android.dockerfile +++ b/.docker/komodo-wallet-android.dockerfile @@ -1,6 +1,6 @@ FROM komodo/android-sdk:35 AS final -ENV FLUTTER_VERSION="3.32.0" +ENV FLUTTER_VERSION="3.32.2" ENV HOME="/home/komodo" ENV USER="komodo" ENV PATH=$PATH:$HOME/flutter/bin diff --git a/.github/workflows/mobile-builds.yml b/.github/workflows/mobile-builds.yml index 1013850c57..3d63229fc6 100644 --- a/.github/workflows/mobile-builds.yml +++ b/.github/workflows/mobile-builds.yml @@ -69,7 +69,7 @@ jobs: FEEDBACK_TEST_URL: ${{ secrets.FEEDBACK_TEST_URL }} # Flutter build with `--no-pub` flag fails on Android due to a - # known regression with the build system in 3.32.0. + # known regression with the build system in 3.32.2. # https://github.com/flutter/flutter/issues/169336 - name: Temporary workaround for Android build issue if: ${{ matrix.platform == 'Android' }} diff --git a/docs/FLUTTER_VERSION.md b/docs/FLUTTER_VERSION.md index 1529c69f00..efe942dab1 100644 --- a/docs/FLUTTER_VERSION.md +++ b/docs/FLUTTER_VERSION.md @@ -2,7 +2,7 @@ ## Supported Flutter Version -This project supports Flutter `3.32.0` (latest stable release). We aim to keep the project up-to-date with the most recent stable Flutter versions. +This project supports Flutter `3.32.2` (latest stable release). We aim to keep the project up-to-date with the most recent stable Flutter versions. ## Recommended Approach: Multiple Flutter Versions @@ -15,14 +15,14 @@ See our guide on [Multiple Flutter Versions](MULTIPLE_FLUTTER_VERSIONS.md) for d While it's possible to pin your global Flutter installation to a specific version, **this approach is not recommended** due to: - Lack of isolation between projects -- Known issues with `flutter pub get` when using Flutter 3.32.0 +- Known issues with `flutter pub get` when using Flutter 3.32.2 - Difficulty switching between versions for different projects If you still choose to use this method, you can run: ```bash cd ~/flutter -git checkout 3.32.0 +git checkout 3.32.2 flutter doctor ``` diff --git a/docs/MULTIPLE_FLUTTER_VERSIONS.md b/docs/MULTIPLE_FLUTTER_VERSIONS.md index e5fa57fdf2..018c09bf70 100644 --- a/docs/MULTIPLE_FLUTTER_VERSIONS.md +++ b/docs/MULTIPLE_FLUTTER_VERSIONS.md @@ -57,7 +57,7 @@ sudo pacman -R flutter # for Arch 2. Launch Flutter Sidekick -3. Click on "Versions" in the sidebar and download Flutter version `3.32.0` +3. Click on "Versions" in the sidebar and download Flutter version `3.32.2` 4. Set this version as the global default by clicking the "Set as Global" button @@ -91,11 +91,11 @@ sudo pacman -R flutter # for Arch curl -fsSL https://fvm.app/install.sh | bash ``` -2. Install and use Flutter 3.32.0: +2. Install and use Flutter 3.32.2: ```bash - fvm install 3.32.0 - fvm global 3.32.0 + fvm install 3.32.2 + fvm global 3.32.2 ``` 3. Add FVM's default Flutter version to your PATH by adding the following to your `~/.bashrc`, `~/.zshrc`, or equivalent: @@ -130,11 +130,11 @@ sudo pacman -R flutter # for Arch choco install fvm ``` -3. Install and use Flutter 3.32.0: +3. Install and use Flutter 3.32.2: ```powershell - fvm install 3.32.0 - fvm global 3.32.0 + fvm install 3.32.2 + fvm global 3.32.2 ``` 4. Add FVM's Flutter version to your PATH: @@ -156,7 +156,7 @@ To use a specific Flutter version for a project: 2. Run: ```bash - fvm use 3.32.0 + fvm use 3.32.2 ``` This will create a `.fvmrc` file in your project, which specifies the Flutter version to use for this project. diff --git a/pubspec.lock b/pubspec.lock index 469fe211c3..2496ea872f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1554,4 +1554,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.7.0 <4.0.0" - flutter: ">=3.32.0" + flutter: ">=3.32.2" From bcd251db7e6110e215be72373962bab76e482336 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 13:35:50 +0200 Subject: [PATCH 4/9] build: add config-only build step to mitigate Flutter regression --- .docker/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docker/build.sh b/.docker/build.sh index d903d34ac7..9dd3c68805 100755 --- a/.docker/build.sh +++ b/.docker/build.sh @@ -55,4 +55,4 @@ docker run $PLATFORM_FLAG --rm -v ./build:/app/build \ -u "$(id -u):$(id -g)" \ $ENV_ARGS \ komodo/komodo-wallet:latest sh -c \ - "sudo chown -R komodo:komodo /app/build; flutter pub get --enforce-lockfile && flutter build $BUILD_TARGET --no-pub --$BUILD_MODE || flutter pub get --enforce-lockfile && flutter build $BUILD_TARGET --no-pub --$BUILD_MODE" + "sudo chown -R komodo:komodo /app/build; flutter clean; flutter pub get --enforce-lockfile; flutter build web --no-pub || true; flutter build $BUILD_TARGET --config-only; flutter build $BUILD_TARGET --no-pub --$BUILD_MODE" From 4fa2a4398c3505b1b9539e2f2d2aabd712c9b35c Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 18:31:45 +0200 Subject: [PATCH 5/9] chore(deps): upgrade SDK to 27683558605b58387cf22e15fa06c29ecb62edb6 --- packages/komodo_ui_kit/pubspec.lock | 6 +++--- pubspec.lock | 30 ++++++++++++++--------------- pubspec.yaml | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/komodo_ui_kit/pubspec.lock b/packages/komodo_ui_kit/pubspec.lock index ceb7864694..537943d8f7 100644 --- a/packages/komodo_ui_kit/pubspec.lock +++ b/packages/komodo_ui_kit/pubspec.lock @@ -95,7 +95,7 @@ packages: description: path: "packages/komodo_defi_rpc_methods" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -104,7 +104,7 @@ packages: description: path: "packages/komodo_defi_types" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -113,7 +113,7 @@ packages: description: path: "packages/komodo_ui" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" diff --git a/pubspec.lock b/pubspec.lock index 2496ea872f..9b59ddf847 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -337,10 +337,10 @@ packages: dependency: "direct main" description: name: flutter_bloc - sha256: "1046d719fbdf230330d3443187cc33cc11963d15c9089f6cc56faa42a4c5f0cc" + sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38 url: "https://pub.dev" source: hosted - version: "9.1.0" + version: "9.1.1" flutter_driver: dependency: transitive description: flutter @@ -586,10 +586,10 @@ packages: dependency: "direct main" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" http_multi_server: dependency: transitive description: @@ -648,7 +648,7 @@ packages: description: path: "packages/komodo_cex_market_data" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.0.1" @@ -657,7 +657,7 @@ packages: description: path: "packages/komodo_coins" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -666,7 +666,7 @@ packages: description: path: "packages/komodo_defi_framework" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0" @@ -675,7 +675,7 @@ packages: description: path: "packages/komodo_defi_local_auth" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -684,7 +684,7 @@ packages: description: path: "packages/komodo_defi_rpc_methods" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -693,7 +693,7 @@ packages: description: path: "packages/komodo_defi_sdk" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -702,7 +702,7 @@ packages: description: path: "packages/komodo_defi_types" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -718,7 +718,7 @@ packages: description: path: "packages/komodo_ui" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -734,7 +734,7 @@ packages: description: path: "packages/komodo_wallet_build_transformer" ref: dev - resolved-ref: "4ecbdaba11f572aa3c46603622ad42d7ee995b1a" + resolved-ref: "27683558605b58387cf22e15fa06c29ecb62edb6" url: "https://github.com/KomodoPlatform/komodo-defi-sdk-flutter.git" source: git version: "0.2.0+0" @@ -862,10 +862,10 @@ packages: dependency: transitive description: name: mobile_scanner - sha256: "9cb9e371ee9b5b548714f9ab5fd33b530d799745c83d5729ecd1e8ab2935dbd1" + sha256: "54005bdea7052d792d35b4fef0f84ec5ddc3a844b250ecd48dc192fb9b4ebc95" url: "https://pub.dev" source: hosted - version: "6.0.7" + version: "7.0.1" mutex: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index b6b3b798c6..039648bbc7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -58,7 +58,7 @@ dependencies: ## ---- Dart.dev, Flutter.dev args: ^2.7.0 # dart.dev flutter_markdown: ^0.7.7 # flutter.dev - http: 1.3.0 # dart.dev + http: 1.4.0 # dart.dev intl: 0.20.2 # dart.dev js: ">=0.6.7 <=0.7.2" # dart.dev url_launcher: 6.3.1 # flutter.dev From ec865d803ebeceb5a6d193f73c9d096bee5ae111 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 18:32:15 +0200 Subject: [PATCH 6/9] build(android): revert back to JDK 17 --- .docker/android-sdk.dockerfile | 2 +- android/app/build.gradle | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.docker/android-sdk.dockerfile b/.docker/android-sdk.dockerfile index 4fea79202c..91d2291c80 100644 --- a/.docker/android-sdk.dockerfile +++ b/.docker/android-sdk.dockerfile @@ -36,7 +36,7 @@ RUN set -o xtrace \ && sudo chown -R $USER:$USER /opt \ && cd /opt \ && sudo apt-get update \ - && sudo apt-get install -y jq openjdk-21-jdk nodejs npm \ + && sudo apt-get install -y jq openjdk-17-jdk nodejs npm \ wget zip unzip git openssh-client curl bc software-properties-common build-essential \ ruby-full ruby-bundler libstdc++6 libpulse0 libglu1-mesa locales lcov libsqlite3-dev --no-install-recommends \ # For Linux build diff --git a/android/app/build.gradle b/android/app/build.gradle index ebe3df229b..b2ab08878a 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -30,11 +30,11 @@ android { compileSdk 35 compileOptions { - sourceCompatibility JavaVersion.VERSION_21 - targetCompatibility JavaVersion.VERSION_21 + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = '21' + jvmTarget = '17' } sourceSets { main.java.srcDirs += 'src/main/kotlin' From 29aa73310bc251b73ce97f30f6ba7e78ce09e2f5 Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 18:56:43 +0200 Subject: [PATCH 7/9] build(docker): mount source as volume rather than including as copy step --- .docker/build.sh | 8 ++++++-- .docker/komodo-wallet-android.dockerfile | 1 - 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.docker/build.sh b/.docker/build.sh index 9dd3c68805..2a6a525f10 100755 --- a/.docker/build.sh +++ b/.docker/build.sh @@ -22,7 +22,10 @@ else PLATFORM_FLAG="" fi -docker build $PLATFORM_FLAG --build-arg BUILD_USER_ID=$(id -u) -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:35 +HOST_UID=$(id -u) +HOST_GID=$(id -g) + +docker build $PLATFORM_FLAG --build-arg BUILD_USER_ID=$HOST_UID -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:35 docker build $PLATFORM_FLAG -f .docker/komodo-wallet-android.dockerfile . -t komodo/komodo-wallet # Create the build directory ourselves to prevent it from being created by the Docker daemon (as root) @@ -52,7 +55,8 @@ done # Use the provided arguments for flutter build # Build a second time if needed, as asset downloads will require a rebuild on the first attempt docker run $PLATFORM_FLAG --rm -v ./build:/app/build \ - -u "$(id -u):$(id -g)" \ + -v $(pwd):/app \ + -u "$HOST_UID:$HOST_GID" \ $ENV_ARGS \ komodo/komodo-wallet:latest sh -c \ "sudo chown -R komodo:komodo /app/build; flutter clean; flutter pub get --enforce-lockfile; flutter build web --no-pub || true; flutter build $BUILD_TARGET --config-only; flutter build $BUILD_TARGET --no-pub --$BUILD_MODE" diff --git a/.docker/komodo-wallet-android.dockerfile b/.docker/komodo-wallet-android.dockerfile index 6abdc50d05..4932a6fd3f 100644 --- a/.docker/komodo-wallet-android.dockerfile +++ b/.docker/komodo-wallet-android.dockerfile @@ -8,7 +8,6 @@ ENV PATH=$PATH:$HOME/flutter/bin USER $USER WORKDIR /app -COPY --chown=$USER:$USER . . RUN curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz && \ tar -xvf flutter_linux_${FLUTTER_VERSION}-stable.tar.xz -C ${HOME} && \ From f933131e7b79beb0a6cb9fa8540bdf3a5c7d19da Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 20:26:22 +0200 Subject: [PATCH 8/9] ci(android): fix workflow dispatcher and build arg --- .docker/build.sh | 11 ++++++++++- .github/workflows/docker-android-build.yml | 22 +++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/.docker/build.sh b/.docker/build.sh index 2a6a525f10..1391e7f2dd 100755 --- a/.docker/build.sh +++ b/.docker/build.sh @@ -25,6 +25,15 @@ fi HOST_UID=$(id -u) HOST_GID=$(id -g) +# Use fallback UID/GID if running as root to avoid conflicts +# in GitHub Actions where the UID/GID may be 0. +# android-sdk.dockerfile attempts to create a user with the +# provided UID/GID, so 0 is not a valid choice (already exists). +if [ "$HOST_UID" = "0" ]; then + HOST_UID=1000 + HOST_GID=1000 +fi + docker build $PLATFORM_FLAG --build-arg BUILD_USER_ID=$HOST_UID -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:35 docker build $PLATFORM_FLAG -f .docker/komodo-wallet-android.dockerfile . -t komodo/komodo-wallet @@ -59,4 +68,4 @@ docker run $PLATFORM_FLAG --rm -v ./build:/app/build \ -u "$HOST_UID:$HOST_GID" \ $ENV_ARGS \ komodo/komodo-wallet:latest sh -c \ - "sudo chown -R komodo:komodo /app/build; flutter clean; flutter pub get --enforce-lockfile; flutter build web --no-pub || true; flutter build $BUILD_TARGET --config-only; flutter build $BUILD_TARGET --no-pub --$BUILD_MODE" + "sudo chown -R komodo:komodo /app/build; flutter pub get --enforce-lockfile; flutter build web --no-pub || true; flutter build $BUILD_TARGET --config-only; flutter build $BUILD_TARGET --no-pub --$BUILD_MODE" diff --git a/.github/workflows/docker-android-build.yml b/.github/workflows/docker-android-build.yml index c56a4713cd..9dc3737e4a 100644 --- a/.github/workflows/docker-android-build.yml +++ b/.github/workflows/docker-android-build.yml @@ -1,6 +1,24 @@ name: Build Android Docker image on: + pull_request: + branches: + [ + dev, + main, + release/*, + hotfix/*, + bugfix/*, + feature/*, + chore/*, + build/*, + ci/*, + ] + paths: + - ".docker/**" + - "android/**" + - "pubspec.yaml" + - "pubspec.lock" workflow_dispatch: jobs: @@ -17,6 +35,8 @@ jobs: uses: docker/setup-buildx-action@v3 - name: Build Android image + env: + GITHUB_API_PUBLIC_READONLY_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | chmod +x .docker/build.sh - sh .docker/build.sh android release + sh .docker/build.sh apk release From 1864eda2b8138ffe433f50a3af3e581d6786940e Mon Sep 17 00:00:00 2001 From: Francois Date: Tue, 10 Jun 2025 20:56:41 +0200 Subject: [PATCH 9/9] ci(android): add temporary firebase workaround for android --- .github/workflows/docker-android-build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/docker-android-build.yml b/.github/workflows/docker-android-build.yml index 9dc3737e4a..881973bf63 100644 --- a/.github/workflows/docker-android-build.yml +++ b/.github/workflows/docker-android-build.yml @@ -34,6 +34,13 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + # Temporary workaround until firebase configs are added to CI + - name: Comment out Google Play Services import + shell: bash + run: | + sed -i 's/id .com\.google\.gms\.google-services./\/\/ id .com\.google\.gms\.google-services./' android/app/build.gradle + echo "Google Play Services import commented out" + - name: Build Android image env: GITHUB_API_PUBLIC_READONLY_TOKEN: ${{ secrets.GITHUB_TOKEN }}