fix: linux builds (#3485)
cyan committed
Aug 7, 2026 at 22:10 UTC
43cd125942d8ff2a15b0a9bc5e949136de0de2c6
15 files changed
+288
-71
.github/workflows/pr_test_build_linux.yml
+30
-69
@@ -2,9 +2,15 @@ name: Cake Wallet Linux
2
3
on: [pull_request]
4
5
+permissions:
6
+ contents: read
7
+ packages: write
8
+
9
defaults:
10
run:
11
shell: bash
12
+
13
+
14
jobs:
15
PR_test_build:
16
runs-on: [Linux, amd64, forlinux]
@@ -26,6 +32,14 @@ jobs:
32
steps:
33
- name: Fix github actions messing up $HOME...
34
run: "echo HOME=/root | sudo tee -a $GITHUB_ENV"
35
+
36
+ - name: Log in to GitHub Container Registry
37
+ uses: docker/login-action@v3
38
+ with:
39
+ registry: ghcr.io
40
+ username: ${{ github.actor }}
41
+ password: ${{ secrets.GITHUB_TOKEN }}
42
+
43
- uses: actions/checkout@v4
44
with:
45
ref: ${{ github.event.pull_request.head.sha }}
@@ -35,6 +49,7 @@ jobs:
49
git config --global --add safe.directory '*'
50
git config --global user.email "ci@cakewallet.com"
51
git config --global user.name "CakeWallet CI"
52
+
53
- name: Get the full commit message
54
run: |
55
FULL_MESSAGE="$(git log -1 --pretty=%B)"
@@ -54,8 +69,8 @@ jobs:
69
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
70
echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
71
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
57
- echo "const blinkApiKey = '${{ secrets.BLINK_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
72
echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
73
+ echo "const blinkApiKey = '${{ secrets.BLINK_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
74
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
75
echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
76
echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
@@ -65,72 +80,19 @@ jobs:
80
81
echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
82
echo "const tronNowNodesApiKey = '${{ secrets.TRON_NOW_NODES_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart
68
-
83
+
84
echo "const breezApiKey = '${{ secrets.BREEZ_API_KEY }}';" >> cw_bitcoin/lib/.secrets.g.dart
85
86
echo "${{ secrets.MAIN_SECRETS_FILE }}" | base64 --decode > lib/.secrets.g.dart
87
73
- - name: Fetch prebuilt Torch
74
- run: |
75
- set -x -e
76
- pushd scripts
77
- wget https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz -O torch_dart.tar.gz
78
- mkdir torch_dart
79
- pushd torch_dart
80
- tar -xzf ../torch_dart.tar.gz
81
- popd
82
- rm ./torch_dart.tar.gz
83
- popd
88
85
- - name: Fetch prebuilt Reown
89
+ - name: Build dependencies utilizing ghcr cache
90
run: |
87
- set -x -e
88
- pushd scripts
89
- # cleaning
90
- rm -rf reown_flutter
91
- rm -f reown_flutter.tar.gz
92
- wget https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz -O reown_flutter.tar.gz
93
- mkdir reown_flutter
94
- pushd reown_flutter
95
- tar -xzf ../reown_flutter.tar.gz
96
- popd
97
- rm ./reown_flutter.tar.gz
98
- popd
91
+ env \
92
+ CW_DOCKER_REGISTRY=ghcr.io/cake-tech/cake_wallet \
93
+ CW_DOCKER_USE_CLOUD=true \
94
+ ./scripts/linux/docker/build.sh
95
100
- - name: Build Zcash Lib
101
- run: |
102
- set -x -e
103
- pushd scripts/linux
104
- ./build_zcash.sh
105
- popd
106
-
107
- - name: Build Bitbox Flutter
108
- run: |
109
- set -x -e
110
- pushd scripts
111
- ./build_bitbox_flutter.sh
112
- popd
113
-
114
- - name: Build monero_c
115
- run: |
116
- ./scripts/prepare_moneroc.sh
117
- mkdir -p scripts/monero_c/release
118
- pushd scripts/monero_c/release
119
- TAG=$(git describe --tags)
120
- mkdir -p "$TAG"
121
- pushd "$TAG"
122
- wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC2/release-bundle.zip
123
- unzip release-bundle.zip
124
- # RC2's bundle puts everything under an inner v0.18.4.6-*/ dir, strip it
125
- shopt -s nullglob
126
- for inner in v0.18.4.6-*/; do
127
- mv "$inner"* .
128
- rmdir "$inner"
129
- done
130
- shopt -u nullglob
131
- rm release-bundle.zip
132
- popd
133
- popd
96
97
- name: Execute Build and Setup Commands
98
run: |
@@ -143,15 +105,6 @@ jobs:
105
run: |
106
flutter pub get
107
146
- - name: Build mwebd
147
- run: |
148
- set -x -e
149
- export MWEBD_HASH=$(cat scripts/android/build_mwebd.sh | grep 'git reset --hard' | xargs | awk '{ print $4 }')
150
- echo MWEBD_HASH=$MWEBD_HASH >> /etc/environment
151
- pushd scripts/android
152
- ./build_mwebd.sh
153
- popd
154
-
108
- name: Build generated code
109
run: |
110
./model_generator.sh async
@@ -159,6 +112,7 @@ jobs:
112
- name: Generate localization
113
run: |
114
dart run tool/generate_localization.dart
115
+
116
- name: Build linux
117
run: |
118
flutter build linux --dart-define=hasDevOptions=true --release
@@ -198,6 +152,7 @@ jobs:
152
xmessage -timeout 30 "confirm_seeds_flow_test" &
153
rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet
154
exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/confirm_seeds_flow_test.dart
155
+
156
- name: Test [create_wallet_flow_test]
157
if: ${{ contains(env.message, 'run tests') }}
158
timeout-minutes: 20
@@ -205,6 +160,7 @@ jobs:
160
xmessage -timeout 30 "create_wallet_flow_test" &
161
rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet
162
exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/create_wallet_flow_test.dart
163
+
164
# - name: Test [exchange_flow_test]
165
# if: ${{ contains(env.message, 'run tests') }}
166
# timeout-minutes: 20
@@ -212,6 +168,7 @@ jobs:
168
# xmessage -timeout 30 "exchange_flow_test" &
169
# rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet
170
# exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/exchange_flow_test.dart
171
+
172
- name: Test [restore_wallet_through_seeds_flow_test]
173
if: ${{ contains(env.message, 'run tests') }}
174
timeout-minutes: 20
@@ -219,12 +176,15 @@ jobs:
176
xmessage -timeout 30 "restore_wallet_through_seeds_flow_test" &
177
rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet
178
exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/restore_wallet_through_seeds_flow_test.dart
179
+
180
- name: Test [cw_core]
181
timeout-minutes: 15
182
run: cd cw_core && flutter test
183
+
184
- name: Test [cw_monero]
185
timeout-minutes: 15
186
run: cd cw_monero && flutter test
187
+
188
- name: Stop screen recording, encrypt and upload
189
if: always()
190
run: |
@@ -245,6 +205,7 @@ jobs:
205
/opt/screen_grab.mkv
206
rm /opt/screen_grab.mkv
207
mv /opt/screen_grab.mkv.gpg ./screen_grab.mkv.gpg
208
+
209
- name: Upload Artifact to github
210
if: always()
211
continue-on-error: true
cw_mweb/pubspec.yaml
+1
-1
@@ -21,7 +21,7 @@ dev_dependencies:
21
flutter_test:
22
sdk: flutter
23
flutter_lints: ^2.0.0
24
- ffigen:
24
+ ffigen: ^20.1.1
25
26
# For information on the generic Dart part of this file, see the
27
# following page: https://dart.dev/tools/pub/pubspec
scripts/android/docker/Dockerfile.reown
+1
@@ -4,6 +4,7 @@ FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
4
RUN mkdir -p /w/scripts/android
5
COPY scripts/prepare_reown.sh /w/scripts/prepare_reown.sh
6
COPY scripts/android/build_reown_deps.sh /w/scripts/android/build_reown_deps.sh
7
+RUN cd $(dirname $(which flutter)) && git checkout 3.32.0
8
RUN /w/scripts/android/build_reown_deps.sh \
9
&& rm -rf /w/scripts/reown_flutter/packages/reown_core/.dart_tool \
10
&& rm -rf /w/scripts/reown_flutter/packages/reown_sign/.dart_tool \
scripts/android/docker/Dockerfile.torch
+9
@@ -4,6 +4,15 @@ FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
4
5
COPY scripts/prepare_torch.sh /w/scripts/prepare_torch.sh
6
COPY scripts/android/build_torch.sh /w/scripts/android/build_torch.sh
7
+ARG UID=10001
8
+ARG GID=10001
9
+ARG USER=builder
10
+RUN groupadd -g "$GID" "$USER" && \
11
+ useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER"
12
+
13
+RUN sudo chown $UID:$GID -R /w /root
14
+USER builder
15
+
16
RUN /w/scripts/android/build_torch.sh && rm -rf /w/scripts/torch_dart/simplybs
17
18
FROM --platform=linux/amd64 alpine
scripts/linux/build_torch.sh
new
+9
@@ -0,0 +1,9 @@
1
+#!/bin/bash
2
+set -x -e
3
+cd "$(dirname "$0")"
4
+
5
+../prepare_torch.sh
6
+
7
+cd ../torch_dart
8
+
9
+# ./build.sh x86_64-linux-gnu
scripts/linux/docker/Dockerfile.base
new
+3
@@ -0,0 +1,3 @@
1
+FROM --platform=linux/amd64 ghcr.io/cake-tech/cake_wallet:debian13-flutter3.41.9-ndkr28-go1.24.1-ruststablenightly
2
+
3
+WORKDIR /w
scripts/linux/docker/Dockerfile.bitbox
new
+9
@@ -0,0 +1,9 @@
1
+ARG BASE_IMAGE
2
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
3
+
4
+RUN mkdir -p /w/scripts
5
+COPY scripts/build_bitbox_flutter.sh /w/scripts/build_bitbox_flutter.sh
6
+RUN cd /w/scripts && /w/scripts/build_bitbox_flutter.sh
7
+
8
+FROM --platform=linux/amd64 alpine
9
+COPY --from=build /w /w
scripts/linux/docker/Dockerfile.final
new
+23
@@ -0,0 +1,23 @@
1
+ARG BASE_IMAGE
2
+ARG TORCH_IMAGE
3
+ARG REOWN_IMAGE
4
+ARG BITBOX_IMAGE
5
+ARG MONERO_IMAGE
6
+ARG MWEBD_IMAGE
7
+ARG ZCASH_IMAGE
8
+
9
+FROM --platform=linux/amd64 ${TORCH_IMAGE} AS torch_src
10
+FROM --platform=linux/amd64 ${REOWN_IMAGE} AS reown_src
11
+FROM --platform=linux/amd64 ${BITBOX_IMAGE} AS bitbox_src
12
+FROM --platform=linux/amd64 ${MONERO_IMAGE} AS monero_src
13
+FROM --platform=linux/amd64 ${MWEBD_IMAGE} AS mwebd_src
14
+FROM --platform=linux/amd64 ${ZCASH_IMAGE} AS zcash_src
15
+
16
+FROM --platform=linux/amd64 alpine
17
+
18
+COPY --from=torch_src /w /w.top
19
+COPY --from=reown_src /w /w.top
20
+COPY --from=bitbox_src /w /w.top
21
+COPY --from=monero_src /w /w.top
22
+COPY --from=mwebd_src /w /w.top
23
+COPY --from=zcash_src /w /w.top
scripts/linux/docker/Dockerfile.monero
new
+22
@@ -0,0 +1,22 @@
1
+ARG BASE_IMAGE
2
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
3
+
4
+ARG UID=10001
5
+ARG GID=10001
6
+ARG USER=builder
7
+RUN groupadd -g "$GID" "$USER" && \
8
+ useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER"
9
+
10
+RUN sudo chown $UID:$GID -R /w /root
11
+USER builder
12
+RUN mkdir -p /w/scripts/linux
13
+COPY scripts/prepare_moneroc.sh /w/scripts/prepare_moneroc.sh
14
+COPY scripts/linux/build_monero_all.sh /w/scripts/linux/build_monero_all.sh
15
+COPY scripts/functions.sh /w/scripts/functions.sh
16
+RUN /w/scripts/linux/build_monero_all.sh \
17
+ && rm -rf /w/scripts/monero_c/contrib/depends/simplybs \
18
+ /w/scripts/monero_c/monero_libwallet2_api_c/build \
19
+ /w/scripts/monero_c/wownero_libwallet2_api_c/build
20
+
21
+FROM --platform=linux/amd64 alpine
22
+COPY --from=build /w /w
scripts/linux/docker/Dockerfile.mwebd
new
+15
@@ -0,0 +1,15 @@
1
+ARG BASE_IMAGE
2
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
3
+
4
+RUN mkdir -p /w/scripts/android
5
+COPY pubspec_base.yaml /w/pubspec.yaml
6
+# COPY pubspec_overrides.yaml /w/pubspec_overrides.yaml
7
+# COPY pubspec_overrides.yaml /w/cw_mweb/pubspec_overrides.yaml
8
+COPY cw_mweb/pubspec.yaml /w/cw_mweb/pubspec.yaml
9
+COPY cw_mweb/ffigen_config.yaml /w/cw_mweb/ffigen_config.yaml
10
+COPY cw_mweb/go /w/cw_mweb/go
11
+COPY scripts/android/build_mwebd.sh /w/scripts/android/build_mwebd.sh
12
+RUN /w/scripts/android/build_mwebd.sh
13
+
14
+FROM --platform=linux/amd64 alpine
15
+COPY --from=build /w /w
scripts/linux/docker/Dockerfile.reown
new
+22
@@ -0,0 +1,22 @@
1
+ARG BASE_IMAGE
2
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
3
+
4
+RUN mkdir -p /w/scripts/android
5
+COPY scripts/prepare_reown.sh /w/scripts/prepare_reown.sh
6
+COPY scripts/android/build_reown_deps.sh /w/scripts/android/build_reown_deps.sh
7
+RUN cd $(dirname $(which flutter)) && git checkout 3.32.0
8
+RUN /w/scripts/android/build_reown_deps.sh \
9
+ && rm -rf /w/scripts/reown_flutter/packages/reown_core/.dart_tool \
10
+ && rm -rf /w/scripts/reown_flutter/packages/reown_sign/.dart_tool \
11
+ && rm -rf /w/scripts/reown_flutter/packages/reown_cli/.dart_tool \
12
+ && rm -rf /w/scripts/reown_flutter/packages/reown_walletkit/example/.dart_tool \
13
+ && rm -rf /w/scripts/reown_flutter/packages/reown_walletkit/.dart_tool \
14
+ && rm -rf /w/scripts/reown_flutter/packages/reown_yttrium/.dart_tool \
15
+ && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/example/base/.dart_tool \
16
+ && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/example/modal/.dart_tool \
17
+ && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/.dart_tool \
18
+ && rm -rf /w/scripts/reown_flutter/.dart_tool \
19
+ && rm -rf /w/scripts/reown_flutter/scripts/yttrium/target
20
+
21
+FROM --platform=linux/amd64 alpine
22
+COPY --from=build /w /w
scripts/linux/docker/Dockerfile.torch
new
+20
@@ -0,0 +1,20 @@
1
+ARG BASE_IMAGE
2
+
3
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
4
+
5
+COPY scripts/prepare_torch.sh /w/scripts/prepare_torch.sh
6
+COPY scripts/linux/build_torch.sh /w/scripts/linux/build_torch.sh
7
+
8
+ARG UID=10001
9
+ARG GID=10001
10
+ARG USER=builder
11
+RUN groupadd -g "$GID" "$USER" && \
12
+ useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER"
13
+
14
+RUN sudo chown $UID:$GID -R /w /root
15
+USER builder
16
+
17
+RUN /w/scripts/prepare_torch.sh
18
+
19
+FROM --platform=linux/amd64 alpine
20
+COPY --from=build /w /w
scripts/linux/docker/Dockerfile.zcash
new
+10
@@ -0,0 +1,10 @@
1
+ARG BASE_IMAGE
2
+FROM --platform=linux/amd64 ${BASE_IMAGE} AS build
3
+
4
+RUN mkdir -p /w/scripts/linux
5
+COPY scripts/prepare_zcash.sh /w/scripts/prepare_zcash.sh
6
+COPY scripts/linux/build_zcash.sh /w/scripts/linux/build_zcash.sh
7
+RUN /w/scripts/linux/build_zcash.sh
8
+
9
+FROM --platform=linux/amd64 alpine
10
+COPY --from=build /w /w
scripts/linux/docker/build.sh
new
+113
@@ -0,0 +1,113 @@
1
+#!/usr/bin/env bash
2
+set -euo pipefail
3
+cd "$(dirname $0)"
4
+
5
+CW_DOCKER_REGISTRY="${CW_DOCKER_REGISTRY:-localhost/cake-tech/cake_wallet}"
6
+CW_DOCKER_USE_CLOUD="${CW_DOCKER_USE_CLOUD:-}"
7
+
8
+SCRIPT_DIR="$(pwd)"
9
+REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
10
+
11
+image_exists() {
12
+ docker image inspect "$1" &>/dev/null
13
+}
14
+
15
+tinysha() {
16
+ cat "$@" | sha256sum | cut -c1-6
17
+}
18
+
19
+build() {
20
+ local name="$1"; shift
21
+ local version=$1; shift
22
+ if [[ "x$CW_DOCKER_USE_CLOUD" == "xtrue" ]]
23
+ then
24
+ set +e
25
+ docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
26
+ grep "^${CW_DOCKER_REGISTRY}:linux-deps-amd64-" | \
27
+ awk '{print $2}' | \
28
+ xargs -r docker rmi
29
+ docker pull "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}"
30
+ set -e
31
+ fi
32
+ if image_exists "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}"; then
33
+ echo "==> skipping $name (image already exists)"
34
+ return 0
35
+ fi
36
+ echo "==> building $name"
37
+ docker build \
38
+ --platform linux/amd64 \
39
+ --file "$SCRIPT_DIR/Dockerfile.${name}" \
40
+ --tag "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}" \
41
+ "$@" \
42
+ "$REPO_ROOT"
43
+ if [[ "x$CW_DOCKER_USE_CLOUD" == "xtrue" ]]
44
+ then
45
+ docker push "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}"
46
+ fi
47
+}
48
+
49
+img() {
50
+ echo "$CW_DOCKER_REGISTRY:linux-deps-amd64-${1}-$(tinysha "$SCRIPT_DIR/Dockerfile.${1}")-${2}"
51
+}
52
+
53
+base_ver="latest"
54
+torch_ver="$(tinysha $SCRIPT_DIR/Dockerfile.torch $REPO_ROOT/scripts/prepare_torch.sh $REPO_ROOT/scripts/linux/build_torch.sh)"
55
+reown_ver=$(tinysha $SCRIPT_DIR/Dockerfile.reown $REPO_ROOT/scripts/prepare_reown.sh $REPO_ROOT/scripts/android/build_reown_deps.sh)
56
+bitbox_ver=$(tinysha $SCRIPT_DIR/Dockerfile.bitbox $REPO_ROOT/scripts/build_bitbox_flutter.sh)
57
+monero_ver=$(tinysha $SCRIPT_DIR/Dockerfile.monero $REPO_ROOT/scripts/prepare_moneroc.sh $REPO_ROOT/scripts/linux/build_monero_all.sh)
58
+mwebd_ver=$(tinysha $SCRIPT_DIR/Dockerfile.mwebd $REPO_ROOT/cw_mweb/pubspec.yaml $(find $REPO_ROOT/cw_mweb/go -type f))
59
+zcash_ver=$(tinysha $SCRIPT_DIR/Dockerfile.zcash $REPO_ROOT/scripts/prepare_zcash.sh $REPO_ROOT/scripts/linux/build_zcash.sh)
60
+echo $base_ver $torch_ver $reown_ver $bitbox_ver $monero_ver $mwebd_ver $zcash_ver > /tmp/docker_build_versions
61
+final_ver=$(tinysha /tmp/docker_build_versions)
62
+
63
+docker create --name temp_extract $(img final $final_ver) \
64
+&& cd $REPO_ROOT \
65
+&& docker cp temp_extract:/w.top w.top \
66
+&& rsync -av w.top/ . \
67
+&& rm -rf w.top \
68
+&& docker rm temp_extract \
69
+&& echo "cache ok" \
70
+&& exit 0 \
71
+|| echo "cache miss oh"
72
+
73
+docker rm temp_extract || true
74
+
75
+build base "$base_ver"
76
+
77
+build bitbox "$bitbox_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")"
78
+
79
+build mwebd "$mwebd_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")"
80
+
81
+build reown "$reown_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")"
82
+
83
+build monero "$monero_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")"
84
+
85
+build zcash "$zcash_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")"
86
+
87
+build torch "$torch_ver" \
88
+ --build-arg BASE_IMAGE="$(img base "$base_ver")"
89
+
90
+build final $final_ver \
91
+ --build-arg BASE_IMAGE="$(img base $base_ver)" \
92
+ --build-arg TORCH_IMAGE="$(img torch $torch_ver)" \
93
+ --build-arg REOWN_IMAGE="$(img reown $reown_ver)" \
94
+ --build-arg BITBOX_IMAGE="$(img bitbox $bitbox_ver)" \
95
+ --build-arg MONERO_IMAGE="$(img monero $monero_ver)" \
96
+ --build-arg MWEBD_IMAGE="$(img mwebd $mwebd_ver)" \
97
+ --build-arg ZCASH_IMAGE="$(img zcash $zcash_ver)"
98
+
99
+echo "done: $(img final $final_ver)"
100
+echo $(img final $final_ver) > /tmp/cakewallet_docker
101
+
102
+
103
+docker create --name temp_extract $(img final $final_ver) \
104
+&& cd $REPO_ROOT \
105
+&& docker cp temp_extract:/w.top w.top \
106
+&& rsync -av w.top/ . \
107
+&& rm -rf w.top \
108
+&& docker rm temp_extract \
109
+&& echo "cache ok" \
110
+&& exit 0
111
+
112
+echo idk.
113
+exit 1
scripts/prepare_torch.sh
+1
-1
@@ -7,7 +7,7 @@ cd "$(dirname "$0")"
7
# - .github/workflows/pr_test_build_linux.yml
8
# https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz
9
10
-HASH=f48a45113ca556b73d8e80ef88012780ced82bcc
10
+HASH=79e5361f43b8aadd340d2900009cf09590b2a0bb
11
12
if [[ ! -d "torch_dart/.git" ]];
13
then