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