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