ci: use prebuilt monero_c on CI builds (#2569)

cyan committed Oct 11, 2025 at 01:09 UTC 75ca159d2ce90b418b4e56edda30ccde7dda414c
13 files changed +35 -83
.github/workflows/pr_test_build_android.yml
+7 -32
@@ -9,7 +9,7 @@ jobs:
9 PR_test_build:
10 runs-on: linux-amd64
11 container:
12 - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
12 + image: ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
13 env:
14 STORE_PASS: test@cake_wallet
15 KEY_PASS: test@cake_wallet
@@ -179,34 +179,6 @@ jobs:
179 echo "const kryptonimApiKey = '${{ secrets.KRYPTONIM_API_KEY }}';" >> lib/.secrets.g.dart
180 echo "const walletGroupSalt = '${{ secrets.WALLET_GROUP_SALT }}';" >> lib/.secrets.g.dart
181
182 - - name: prepare monero_c and cache
183 - run: |
184 - export MONEROC_HASH=$(cat scripts/prepare_moneroc.sh | grep 'git checkout' | xargs | awk '{ print $3 }')
185 - echo MONEROC_HASH=$MONEROC_HASH >> /etc/environment
186 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/moneroc-$MONEROC_HASH/monero_c"
187 - pushd scripts
188 - ln -s "$MONEROC_CACHE_DIR_ROOT/moneroc-$MONEROC_HASH/monero_c"
189 - ./prepare_moneroc.sh
190 - popd
191 - pushd scripts/monero_c
192 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/built" || true
193 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/built" || true
194 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/built" || true
195 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/sources" || true
196 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/sources" || true
197 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/sources" || true
198 -
199 - rm -rf "$PWD/contrib/depends/built" "$PWD/monero/contrib/depends/built" "$PWD/wownero/contrib/depends/built"
200 - rm -rf "$PWD/contrib/depends/sources" "$PWD/monero/contrib/depends/sources" "$PWD/wownero/contrib/depends/sources"
201 - mkdir -p contrib/depends || true
202 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/built" "$PWD/contrib/depends/built"
203 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/built" "$PWD/monero/contrib/depends/built"
204 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/built" "$PWD/wownero/contrib/depends/built"
205 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/sources" "$PWD/contrib/depends/sources"
206 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/sources" "$PWD/monero/contrib/depends/sources"
207 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/sources" "$PWD/wownero/contrib/depends/sources"
208 - popd
209 -
182 - name: Generate KeyStore
183 run: |
184 pushd /opt/generic_cache
@@ -246,9 +218,12 @@ jobs:
218
219 - name: Build monero_c
220 run: |
249 - pushd scripts/android/
250 - source ./app_env.sh cakewallet
251 - ./build_monero_all.sh
221 + mkdir -p scripts/monero_c
222 + pushd scripts/monero_c
223 + wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.0-RC9/release-bundle.zip
224 + unzip release-bundle.zip
225 + rm release-bundle.zip
226 + unxz -fv release/*/*.xz
227 popd
228
229 - name: Build Bitbox Flutter
.github/workflows/pr_test_build_linux.yml
+7 -32
@@ -9,7 +9,7 @@ jobs:
9 PR_test_build:
10 runs-on: linux-amd64
11 container:
12 - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
12 + image: ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
13 env:
14 STORE_PASS: test@cake_wallet
15 KEY_PASS: test@cake_wallet
@@ -175,34 +175,6 @@ jobs:
175 echo "const kryptonimApiKey = '${{ secrets.KRYPTONIM_API_KEY }}';" >> lib/.secrets.g.dart
176 echo "const walletGroupSalt = '${{ secrets.WALLET_GROUP_SALT }}';" >> lib/.secrets.g.dart
177
178 - - name: prepare monero_c and cache
179 - run: |
180 - export MONEROC_HASH=$(cat scripts/prepare_moneroc.sh | grep 'git checkout' | xargs | awk '{ print $3 }')
181 - echo MONEROC_HASH=$MONEROC_HASH >> /etc/environment
182 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/moneroc-$MONEROC_HASH/monero_c"
183 - pushd scripts
184 - ln -s "$MONEROC_CACHE_DIR_ROOT/moneroc-$MONEROC_HASH/monero_c"
185 - ./prepare_moneroc.sh
186 - popd
187 - pushd scripts/monero_c
188 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/built" || true
189 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/built" || true
190 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/built" || true
191 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/sources" || true
192 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/sources" || true
193 - mkdir -p "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/sources" || true
194 -
195 - rm -rf "$PWD/contrib/depends/built" "$PWD/monero/contrib/depends/built" "$PWD/wownero/contrib/depends/built"
196 - rm -rf "$PWD/contrib/depends/sources" "$PWD/monero/contrib/depends/sources" "$PWD/wownero/contrib/depends/sources"
197 - mkdir -p contrib/depends || true
198 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/built" "$PWD/contrib/depends/built"
199 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/built" "$PWD/monero/contrib/depends/built"
200 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/built" "$PWD/wownero/contrib/depends/built"
201 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/contrib/depends/sources" "$PWD/contrib/depends/sources"
202 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/monero/contrib/depends/sources" "$PWD/monero/contrib/depends/sources"
203 - ln -sf "$MONEROC_CACHE_DIR_ROOT/_cache/wownero/contrib/depends/sources" "$PWD/wownero/contrib/depends/sources"
204 - popd
205 -
178 - name: Fetch prebuilt Torch
179 run: |
180 set -x -e
@@ -223,9 +195,12 @@ jobs:
195
196 - name: Build monero_c
197 run: |
226 - pushd scripts/linux/
227 - source ./app_env.sh cakewallet
228 - ./build_monero_all.sh
198 + mkdir -p scripts/monero_c
199 + pushd scripts/monero_c
200 + wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.0-RC9/release-bundle.zip
201 + unzip release-bundle.zip
202 + rm release-bundle.zip
203 + unxz -fv release/*/*.xz
204 popd
205
206 - name: Build Bitbox Flutter
Dockerfile
+4 -4
@@ -1,4 +1,4 @@
1 -# docker buildx build --push --pull --platform linux/amd64,linux/arm64 . -f Dockerfile -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
1 +# docker buildx build --push --pull --platform linux/amd64,linux/arm64 . -f Dockerfile -t ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly
2
3 # Heavily inspired by cirrusci images
4 # https://github.com/cirruslabs/docker-images-android/blob/master/sdk/tools/Dockerfile
@@ -6,7 +6,7 @@
6 # https://github.com/cirruslabs/docker-images-android/blob/master/sdk/34-ndk/Dockerfile
7 # https://github.com/cirruslabs/docker-images-flutter/blob/master/sdk/Dockerfile
8
9 -FROM docker.io/debian:12
9 +FROM docker.io/debian:13
10
11 LABEL org.opencontainers.image.source=https://github.com/cake-tech/cake_wallet
12
@@ -46,9 +46,9 @@ RUN set -o xtrace \
46 && cd /opt \
47 && apt-get install -y --no-install-recommends --no-install-suggests \
48 # Core dependencies
49 - bc build-essential curl default-jdk git jq lcov libglu1-mesa libpulse0 libsqlite3-dev libstdc++6 locales openssh-client ruby-bundler ruby-full software-properties-common sudo unzip wget zip \
49 + bc build-essential curl default-jdk git jq lcov libglu1-mesa libpulse0 libsqlite3-dev libstdc++6 locales openssh-client ruby-bundler ruby-full sudo unzip wget zip \
50 # for x86 emulators
51 - libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libnspr4 libnss3-dev libsqlite3-dev libxtst6 libxss1 lftp sqlite3 xxd \
51 + libatk-bridge2.0-0 libgdk-pixbuf-xlib-2.0-0 libgtk-3-0 libnspr4 libnss3-dev libsqlite3-dev libxtst6 libxss1 lftp sqlite3 xxd \
52 # Linux desktop dependencies
53 clang cmake libgtk-3-dev ninja-build pkg-config libsecret-1-0 libsecret-1-dev gir1.2-secret-1 \
54 # monero_c dependencies
cw_monero/pubspec.lock
+2 -2
@@ -573,8 +573,8 @@ packages:
573 dependency: "direct main"
574 description:
575 path: "impls/monero.dart"
576 - ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
577 - resolved-ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
576 + ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
577 + resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
578 url: "https://github.com/mrcyjanek/monero_c"
579 source: git
580 version: "0.0.0"
cw_monero/pubspec.yaml
+1 -1
@@ -26,7 +26,7 @@ dependencies:
26 monero:
27 git:
28 url: https://github.com/mrcyjanek/monero_c
29 - ref: 07f7a7f80735130ebfa5842ddee5139076408c0d
29 + ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29
30 path: impls/monero.dart
31 mutex: ^3.1.0
32 ledger_flutter_plus: ^1.4.1
cw_wownero/pubspec.lock
+2 -2
@@ -493,8 +493,8 @@ packages:
493 dependency: "direct main"
494 description:
495 path: "impls/monero.dart"
496 - ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
497 - resolved-ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
496 + ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
497 + resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
498 url: "https://github.com/mrcyjanek/monero_c"
499 source: git
500 version: "0.0.0"
cw_wownero/pubspec.yaml
+1 -1
@@ -24,7 +24,7 @@ dependencies:
24 monero:
25 git:
26 url: https://github.com/mrcyjanek/monero_c
27 - ref: 07f7a7f80735130ebfa5842ddee5139076408c0d # monero_c hash
27 + ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29 # monero_c hash
28 path: impls/monero.dart
29 mutex: ^3.1.0
30
cw_zano/pubspec.lock
+2 -2
@@ -498,8 +498,8 @@ packages:
498 dependency: "direct main"
499 description:
500 path: "impls/monero.dart"
501 - ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
502 - resolved-ref: "07f7a7f80735130ebfa5842ddee5139076408c0d"
501 + ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
502 + resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
503 url: "https://github.com/mrcyjanek/monero_c"
504 source: git
505 version: "0.0.0"
cw_zano/pubspec.yaml
+1 -1
@@ -25,7 +25,7 @@ dependencies:
25 monero:
26 git:
27 url: https://github.com/mrcyjanek/monero_c
28 - ref: 07f7a7f80735130ebfa5842ddee5139076408c0d # monero_c hash
28 + ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29 # monero_c hash
29 path: impls/monero.dart
30 dev_dependencies:
31 flutter_test:
docs/builds/ANDROID.md
+2 -2
@@ -18,8 +18,8 @@ In order to build the latest version of Cake Wallet, simply run the following:
18 git clone --branch main https://github.com/cake-tech/cake_wallet.git
19 # NOTE: Replace `main` with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest.
20 cd cake_wallet
21 -# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry
22 -docker run -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly bash -x << EOF
21 +# docker build -t ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry
22 +docker run -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly bash -x << EOF
23 set -x -e
24 pushd scripts/android
25 ./build_torch.sh
docs/builds/LINUX.md
+2 -2
@@ -20,8 +20,8 @@ In order to build the latest version of Cake Wallet, simply run the following:
20 git clone --branch main https://github.com/cake-tech/cake_wallet.git
21 # NOTE: Replace `main` with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest.
22 cd cake_wallet
23 -# docker build -t ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry
24 -docker run --privileged -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly bash -x << EOF
23 +# docker build -t ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly . # Uncomment to build the docker image yourself instead of pulling it from the registry
24 +docker run --privileged -v$(pwd):$(pwd) -w $(pwd) -i --rm ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly bash -x << EOF
25 set -x -e
26 pushd scripts
27 ./gen_android_manifest.sh
scripts/linux/build_cake_release.sh
+1 -1
@@ -14,7 +14,7 @@ cd "$SCRIPT_DIR"
14 BUILD_AMD64=false
15 BUILD_ARM64=false
16 APP_TYPE="cakewallet"
17 -DOCKER_IMAGE="ghcr.io/cake-tech/cake_wallet:debian12-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly"
17 +DOCKER_IMAGE="ghcr.io/cake-tech/cake_wallet:debian13-flutter3.32.0-ndkr28-go1.24.1-ruststablenightly"
18
19 # Parse arguments
20 for arg in "$@"
scripts/prepare_moneroc.sh
+3 -1
@@ -9,7 +9,9 @@ then
9 rm -rf monero_c
10 git clone https://github.com/mrcyjanek/monero_c --branch master monero_c
11 cd monero_c
12 - git checkout 07f7a7f80735130ebfa5842ddee5139076408c0d
12 + # NOTE: Make sure to update monero_c prebuilds link in workflow files
13 + # https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.0-RC9/release-bundle.zip
14 + git checkout 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29
15 git reset --hard
16 git submodule update --init --force --recursive
17 ./apply_patches.sh monero