From 43cd125942d8ff2a15b0a9bc5e949136de0de2c6 Mon Sep 17 00:00:00 2001 From: cyan Date: Fri, 7 Aug 2026 22:10:27 +0200 Subject: [PATCH] fix: linux builds (#3485) --- .github/workflows/pr_test_build_linux.yml | 99 ++++++------------- cw_mweb/pubspec.yaml | 2 +- scripts/android/docker/Dockerfile.reown | 1 + scripts/android/docker/Dockerfile.torch | 9 ++ scripts/linux/build_torch.sh | 9 ++ scripts/linux/docker/Dockerfile.base | 3 + scripts/linux/docker/Dockerfile.bitbox | 9 ++ scripts/linux/docker/Dockerfile.final | 23 +++++ scripts/linux/docker/Dockerfile.monero | 22 +++++ scripts/linux/docker/Dockerfile.mwebd | 15 +++ scripts/linux/docker/Dockerfile.reown | 22 +++++ scripts/linux/docker/Dockerfile.torch | 20 ++++ scripts/linux/docker/Dockerfile.zcash | 10 ++ scripts/linux/docker/build.sh | 113 ++++++++++++++++++++++ scripts/prepare_torch.sh | 2 +- 15 files changed, 288 insertions(+), 71 deletions(-) create mode 100755 scripts/linux/build_torch.sh create mode 100644 scripts/linux/docker/Dockerfile.base create mode 100644 scripts/linux/docker/Dockerfile.bitbox create mode 100644 scripts/linux/docker/Dockerfile.final create mode 100644 scripts/linux/docker/Dockerfile.monero create mode 100644 scripts/linux/docker/Dockerfile.mwebd create mode 100644 scripts/linux/docker/Dockerfile.reown create mode 100644 scripts/linux/docker/Dockerfile.torch create mode 100644 scripts/linux/docker/Dockerfile.zcash create mode 100755 scripts/linux/docker/build.sh diff --git a/.github/workflows/pr_test_build_linux.yml b/.github/workflows/pr_test_build_linux.yml index 467743048..11af9b2c7 100644 --- a/.github/workflows/pr_test_build_linux.yml +++ b/.github/workflows/pr_test_build_linux.yml @@ -2,9 +2,15 @@ name: Cake Wallet Linux on: [pull_request] +permissions: + contents: read + packages: write + defaults: run: shell: bash + + jobs: PR_test_build: runs-on: [Linux, amd64, forlinux] @@ -26,6 +32,14 @@ jobs: steps: - name: Fix github actions messing up $HOME... run: "echo HOME=/root | sudo tee -a $GITHUB_ENV" + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} @@ -35,6 +49,7 @@ jobs: git config --global --add safe.directory '*' git config --global user.email "ci@cakewallet.com" git config --global user.name "CakeWallet CI" + - name: Get the full commit message run: | FULL_MESSAGE="$(git log -1 --pretty=%B)" @@ -54,8 +69,8 @@ jobs: echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart - echo "const blinkApiKey = '${{ secrets.BLINK_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart + echo "const blinkApiKey = '${{ secrets.BLINK_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart @@ -65,72 +80,19 @@ jobs: echo "const tronGridApiKey = '${{ secrets.TRON_GRID_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart echo "const tronNowNodesApiKey = '${{ secrets.TRON_NOW_NODES_API_KEY }}';" >> cw_tron/lib/.secrets.g.dart - + echo "const breezApiKey = '${{ secrets.BREEZ_API_KEY }}';" >> cw_bitcoin/lib/.secrets.g.dart echo "${{ secrets.MAIN_SECRETS_FILE }}" | base64 --decode > lib/.secrets.g.dart - - name: Fetch prebuilt Torch - run: | - set -x -e - pushd scripts - wget https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz -O torch_dart.tar.gz - mkdir torch_dart - pushd torch_dart - tar -xzf ../torch_dart.tar.gz - popd - rm ./torch_dart.tar.gz - popd - - name: Fetch prebuilt Reown + - name: Build dependencies utilizing ghcr cache run: | - set -x -e - pushd scripts - # cleaning - rm -rf reown_flutter - rm -f reown_flutter.tar.gz - 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 - mkdir reown_flutter - pushd reown_flutter - tar -xzf ../reown_flutter.tar.gz - popd - rm ./reown_flutter.tar.gz - popd + env \ + CW_DOCKER_REGISTRY=ghcr.io/cake-tech/cake_wallet \ + CW_DOCKER_USE_CLOUD=true \ + ./scripts/linux/docker/build.sh - - name: Build Zcash Lib - run: | - set -x -e - pushd scripts/linux - ./build_zcash.sh - popd - - - name: Build Bitbox Flutter - run: | - set -x -e - pushd scripts - ./build_bitbox_flutter.sh - popd - - - name: Build monero_c - run: | - ./scripts/prepare_moneroc.sh - mkdir -p scripts/monero_c/release - pushd scripts/monero_c/release - TAG=$(git describe --tags) - mkdir -p "$TAG" - pushd "$TAG" - wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC2/release-bundle.zip - unzip release-bundle.zip - # RC2's bundle puts everything under an inner v0.18.4.6-*/ dir, strip it - shopt -s nullglob - for inner in v0.18.4.6-*/; do - mv "$inner"* . - rmdir "$inner" - done - shopt -u nullglob - rm release-bundle.zip - popd - popd - name: Execute Build and Setup Commands run: | @@ -143,15 +105,6 @@ jobs: run: | flutter pub get - - name: Build mwebd - run: | - set -x -e - export MWEBD_HASH=$(cat scripts/android/build_mwebd.sh | grep 'git reset --hard' | xargs | awk '{ print $4 }') - echo MWEBD_HASH=$MWEBD_HASH >> /etc/environment - pushd scripts/android - ./build_mwebd.sh - popd - - name: Build generated code run: | ./model_generator.sh async @@ -159,6 +112,7 @@ jobs: - name: Generate localization run: | dart run tool/generate_localization.dart + - name: Build linux run: | flutter build linux --dart-define=hasDevOptions=true --release @@ -198,6 +152,7 @@ jobs: xmessage -timeout 30 "confirm_seeds_flow_test" & rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/confirm_seeds_flow_test.dart + - name: Test [create_wallet_flow_test] if: ${{ contains(env.message, 'run tests') }} timeout-minutes: 20 @@ -205,6 +160,7 @@ jobs: xmessage -timeout 30 "create_wallet_flow_test" & rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/create_wallet_flow_test.dart + # - name: Test [exchange_flow_test] # if: ${{ contains(env.message, 'run tests') }} # timeout-minutes: 20 @@ -212,6 +168,7 @@ jobs: # xmessage -timeout 30 "exchange_flow_test" & # rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet # exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/exchange_flow_test.dart + - name: Test [restore_wallet_through_seeds_flow_test] if: ${{ contains(env.message, 'run tests') }} timeout-minutes: 20 @@ -219,12 +176,15 @@ jobs: xmessage -timeout 30 "restore_wallet_through_seeds_flow_test" & rm -rf ~/.local/share/com.example.cake_wallet/ ~/Documents/cake_wallet/ ~/cake_wallet 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 + - name: Test [cw_core] timeout-minutes: 15 run: cd cw_core && flutter test + - name: Test [cw_monero] timeout-minutes: 15 run: cd cw_monero && flutter test + - name: Stop screen recording, encrypt and upload if: always() run: | @@ -245,6 +205,7 @@ jobs: /opt/screen_grab.mkv rm /opt/screen_grab.mkv mv /opt/screen_grab.mkv.gpg ./screen_grab.mkv.gpg + - name: Upload Artifact to github if: always() continue-on-error: true diff --git a/cw_mweb/pubspec.yaml b/cw_mweb/pubspec.yaml index ae4f4a2e9..058d76279 100644 --- a/cw_mweb/pubspec.yaml +++ b/cw_mweb/pubspec.yaml @@ -21,7 +21,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 - ffigen: + ffigen: ^20.1.1 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/scripts/android/docker/Dockerfile.reown b/scripts/android/docker/Dockerfile.reown index 2d1589d10..1278ba8b3 100644 --- a/scripts/android/docker/Dockerfile.reown +++ b/scripts/android/docker/Dockerfile.reown @@ -4,6 +4,7 @@ FROM --platform=linux/amd64 ${BASE_IMAGE} AS build RUN mkdir -p /w/scripts/android COPY scripts/prepare_reown.sh /w/scripts/prepare_reown.sh COPY scripts/android/build_reown_deps.sh /w/scripts/android/build_reown_deps.sh +RUN cd $(dirname $(which flutter)) && git checkout 3.32.0 RUN /w/scripts/android/build_reown_deps.sh \ && rm -rf /w/scripts/reown_flutter/packages/reown_core/.dart_tool \ && rm -rf /w/scripts/reown_flutter/packages/reown_sign/.dart_tool \ diff --git a/scripts/android/docker/Dockerfile.torch b/scripts/android/docker/Dockerfile.torch index b9f3200e5..d3ea06f49 100644 --- a/scripts/android/docker/Dockerfile.torch +++ b/scripts/android/docker/Dockerfile.torch @@ -4,6 +4,15 @@ FROM --platform=linux/amd64 ${BASE_IMAGE} AS build COPY scripts/prepare_torch.sh /w/scripts/prepare_torch.sh COPY scripts/android/build_torch.sh /w/scripts/android/build_torch.sh +ARG UID=10001 +ARG GID=10001 +ARG USER=builder +RUN groupadd -g "$GID" "$USER" && \ + useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER" + +RUN sudo chown $UID:$GID -R /w /root +USER builder + RUN /w/scripts/android/build_torch.sh && rm -rf /w/scripts/torch_dart/simplybs FROM --platform=linux/amd64 alpine diff --git a/scripts/linux/build_torch.sh b/scripts/linux/build_torch.sh new file mode 100755 index 000000000..4947e9340 --- /dev/null +++ b/scripts/linux/build_torch.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -x -e +cd "$(dirname "$0")" + +../prepare_torch.sh + +cd ../torch_dart + +# ./build.sh x86_64-linux-gnu diff --git a/scripts/linux/docker/Dockerfile.base b/scripts/linux/docker/Dockerfile.base new file mode 100644 index 000000000..09d09f323 --- /dev/null +++ b/scripts/linux/docker/Dockerfile.base @@ -0,0 +1,3 @@ +FROM --platform=linux/amd64 ghcr.io/cake-tech/cake_wallet:debian13-flutter3.41.9-ndkr28-go1.24.1-ruststablenightly + +WORKDIR /w diff --git a/scripts/linux/docker/Dockerfile.bitbox b/scripts/linux/docker/Dockerfile.bitbox new file mode 100644 index 000000000..2dff65d9c --- /dev/null +++ b/scripts/linux/docker/Dockerfile.bitbox @@ -0,0 +1,9 @@ +ARG BASE_IMAGE +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +RUN mkdir -p /w/scripts +COPY scripts/build_bitbox_flutter.sh /w/scripts/build_bitbox_flutter.sh +RUN cd /w/scripts && /w/scripts/build_bitbox_flutter.sh + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/Dockerfile.final b/scripts/linux/docker/Dockerfile.final new file mode 100644 index 000000000..b4f87e7ea --- /dev/null +++ b/scripts/linux/docker/Dockerfile.final @@ -0,0 +1,23 @@ +ARG BASE_IMAGE +ARG TORCH_IMAGE +ARG REOWN_IMAGE +ARG BITBOX_IMAGE +ARG MONERO_IMAGE +ARG MWEBD_IMAGE +ARG ZCASH_IMAGE + +FROM --platform=linux/amd64 ${TORCH_IMAGE} AS torch_src +FROM --platform=linux/amd64 ${REOWN_IMAGE} AS reown_src +FROM --platform=linux/amd64 ${BITBOX_IMAGE} AS bitbox_src +FROM --platform=linux/amd64 ${MONERO_IMAGE} AS monero_src +FROM --platform=linux/amd64 ${MWEBD_IMAGE} AS mwebd_src +FROM --platform=linux/amd64 ${ZCASH_IMAGE} AS zcash_src + +FROM --platform=linux/amd64 alpine + +COPY --from=torch_src /w /w.top +COPY --from=reown_src /w /w.top +COPY --from=bitbox_src /w /w.top +COPY --from=monero_src /w /w.top +COPY --from=mwebd_src /w /w.top +COPY --from=zcash_src /w /w.top diff --git a/scripts/linux/docker/Dockerfile.monero b/scripts/linux/docker/Dockerfile.monero new file mode 100644 index 000000000..3540b16b2 --- /dev/null +++ b/scripts/linux/docker/Dockerfile.monero @@ -0,0 +1,22 @@ +ARG BASE_IMAGE +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +ARG UID=10001 +ARG GID=10001 +ARG USER=builder +RUN groupadd -g "$GID" "$USER" && \ + useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER" + +RUN sudo chown $UID:$GID -R /w /root +USER builder +RUN mkdir -p /w/scripts/linux +COPY scripts/prepare_moneroc.sh /w/scripts/prepare_moneroc.sh +COPY scripts/linux/build_monero_all.sh /w/scripts/linux/build_monero_all.sh +COPY scripts/functions.sh /w/scripts/functions.sh +RUN /w/scripts/linux/build_monero_all.sh \ + && rm -rf /w/scripts/monero_c/contrib/depends/simplybs \ + /w/scripts/monero_c/monero_libwallet2_api_c/build \ + /w/scripts/monero_c/wownero_libwallet2_api_c/build + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/Dockerfile.mwebd b/scripts/linux/docker/Dockerfile.mwebd new file mode 100644 index 000000000..ef24c1bd7 --- /dev/null +++ b/scripts/linux/docker/Dockerfile.mwebd @@ -0,0 +1,15 @@ +ARG BASE_IMAGE +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +RUN mkdir -p /w/scripts/android +COPY pubspec_base.yaml /w/pubspec.yaml +# COPY pubspec_overrides.yaml /w/pubspec_overrides.yaml +# COPY pubspec_overrides.yaml /w/cw_mweb/pubspec_overrides.yaml +COPY cw_mweb/pubspec.yaml /w/cw_mweb/pubspec.yaml +COPY cw_mweb/ffigen_config.yaml /w/cw_mweb/ffigen_config.yaml +COPY cw_mweb/go /w/cw_mweb/go +COPY scripts/android/build_mwebd.sh /w/scripts/android/build_mwebd.sh +RUN /w/scripts/android/build_mwebd.sh + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/Dockerfile.reown b/scripts/linux/docker/Dockerfile.reown new file mode 100644 index 000000000..1278ba8b3 --- /dev/null +++ b/scripts/linux/docker/Dockerfile.reown @@ -0,0 +1,22 @@ +ARG BASE_IMAGE +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +RUN mkdir -p /w/scripts/android +COPY scripts/prepare_reown.sh /w/scripts/prepare_reown.sh +COPY scripts/android/build_reown_deps.sh /w/scripts/android/build_reown_deps.sh +RUN cd $(dirname $(which flutter)) && git checkout 3.32.0 +RUN /w/scripts/android/build_reown_deps.sh \ + && rm -rf /w/scripts/reown_flutter/packages/reown_core/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_sign/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_cli/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_walletkit/example/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_walletkit/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_yttrium/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/example/base/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/example/modal/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/packages/reown_appkit/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/.dart_tool \ + && rm -rf /w/scripts/reown_flutter/scripts/yttrium/target + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/Dockerfile.torch b/scripts/linux/docker/Dockerfile.torch new file mode 100644 index 000000000..433286e42 --- /dev/null +++ b/scripts/linux/docker/Dockerfile.torch @@ -0,0 +1,20 @@ +ARG BASE_IMAGE + +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +COPY scripts/prepare_torch.sh /w/scripts/prepare_torch.sh +COPY scripts/linux/build_torch.sh /w/scripts/linux/build_torch.sh + +ARG UID=10001 +ARG GID=10001 +ARG USER=builder +RUN groupadd -g "$GID" "$USER" && \ + useradd -m -u "$UID" -g "$GID" -s /bin/bash "$USER" + +RUN sudo chown $UID:$GID -R /w /root +USER builder + +RUN /w/scripts/prepare_torch.sh + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/Dockerfile.zcash b/scripts/linux/docker/Dockerfile.zcash new file mode 100644 index 000000000..1396f5c7f --- /dev/null +++ b/scripts/linux/docker/Dockerfile.zcash @@ -0,0 +1,10 @@ +ARG BASE_IMAGE +FROM --platform=linux/amd64 ${BASE_IMAGE} AS build + +RUN mkdir -p /w/scripts/linux +COPY scripts/prepare_zcash.sh /w/scripts/prepare_zcash.sh +COPY scripts/linux/build_zcash.sh /w/scripts/linux/build_zcash.sh +RUN /w/scripts/linux/build_zcash.sh + +FROM --platform=linux/amd64 alpine +COPY --from=build /w /w diff --git a/scripts/linux/docker/build.sh b/scripts/linux/docker/build.sh new file mode 100755 index 000000000..3c76b6d81 --- /dev/null +++ b/scripts/linux/docker/build.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash +set -euo pipefail +cd "$(dirname $0)" + +CW_DOCKER_REGISTRY="${CW_DOCKER_REGISTRY:-localhost/cake-tech/cake_wallet}" +CW_DOCKER_USE_CLOUD="${CW_DOCKER_USE_CLOUD:-}" + +SCRIPT_DIR="$(pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" + +image_exists() { + docker image inspect "$1" &>/dev/null +} + +tinysha() { + cat "$@" | sha256sum | cut -c1-6 +} + +build() { + local name="$1"; shift + local version=$1; shift + if [[ "x$CW_DOCKER_USE_CLOUD" == "xtrue" ]] + then + set +e + docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \ + grep "^${CW_DOCKER_REGISTRY}:linux-deps-amd64-" | \ + awk '{print $2}' | \ + xargs -r docker rmi + docker pull "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}" + set -e + fi + if image_exists "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}"; then + echo "==> skipping $name (image already exists)" + return 0 + fi + echo "==> building $name" + docker build \ + --platform linux/amd64 \ + --file "$SCRIPT_DIR/Dockerfile.${name}" \ + --tag "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}" \ + "$@" \ + "$REPO_ROOT" + if [[ "x$CW_DOCKER_USE_CLOUD" == "xtrue" ]] + then + docker push "$CW_DOCKER_REGISTRY:linux-deps-amd64-${name}-$(tinysha "$SCRIPT_DIR/Dockerfile.${name}")-${version}" + fi +} + +img() { + echo "$CW_DOCKER_REGISTRY:linux-deps-amd64-${1}-$(tinysha "$SCRIPT_DIR/Dockerfile.${1}")-${2}" +} + +base_ver="latest" +torch_ver="$(tinysha $SCRIPT_DIR/Dockerfile.torch $REPO_ROOT/scripts/prepare_torch.sh $REPO_ROOT/scripts/linux/build_torch.sh)" +reown_ver=$(tinysha $SCRIPT_DIR/Dockerfile.reown $REPO_ROOT/scripts/prepare_reown.sh $REPO_ROOT/scripts/android/build_reown_deps.sh) +bitbox_ver=$(tinysha $SCRIPT_DIR/Dockerfile.bitbox $REPO_ROOT/scripts/build_bitbox_flutter.sh) +monero_ver=$(tinysha $SCRIPT_DIR/Dockerfile.monero $REPO_ROOT/scripts/prepare_moneroc.sh $REPO_ROOT/scripts/linux/build_monero_all.sh) +mwebd_ver=$(tinysha $SCRIPT_DIR/Dockerfile.mwebd $REPO_ROOT/cw_mweb/pubspec.yaml $(find $REPO_ROOT/cw_mweb/go -type f)) +zcash_ver=$(tinysha $SCRIPT_DIR/Dockerfile.zcash $REPO_ROOT/scripts/prepare_zcash.sh $REPO_ROOT/scripts/linux/build_zcash.sh) +echo $base_ver $torch_ver $reown_ver $bitbox_ver $monero_ver $mwebd_ver $zcash_ver > /tmp/docker_build_versions +final_ver=$(tinysha /tmp/docker_build_versions) + +docker create --name temp_extract $(img final $final_ver) \ +&& cd $REPO_ROOT \ +&& docker cp temp_extract:/w.top w.top \ +&& rsync -av w.top/ . \ +&& rm -rf w.top \ +&& docker rm temp_extract \ +&& echo "cache ok" \ +&& exit 0 \ +|| echo "cache miss oh" + +docker rm temp_extract || true + +build base "$base_ver" + +build bitbox "$bitbox_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build mwebd "$mwebd_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build reown "$reown_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build monero "$monero_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build zcash "$zcash_ver" --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build torch "$torch_ver" \ + --build-arg BASE_IMAGE="$(img base "$base_ver")" + +build final $final_ver \ + --build-arg BASE_IMAGE="$(img base $base_ver)" \ + --build-arg TORCH_IMAGE="$(img torch $torch_ver)" \ + --build-arg REOWN_IMAGE="$(img reown $reown_ver)" \ + --build-arg BITBOX_IMAGE="$(img bitbox $bitbox_ver)" \ + --build-arg MONERO_IMAGE="$(img monero $monero_ver)" \ + --build-arg MWEBD_IMAGE="$(img mwebd $mwebd_ver)" \ + --build-arg ZCASH_IMAGE="$(img zcash $zcash_ver)" + +echo "done: $(img final $final_ver)" +echo $(img final $final_ver) > /tmp/cakewallet_docker + + +docker create --name temp_extract $(img final $final_ver) \ +&& cd $REPO_ROOT \ +&& docker cp temp_extract:/w.top w.top \ +&& rsync -av w.top/ . \ +&& rm -rf w.top \ +&& docker rm temp_extract \ +&& echo "cache ok" \ +&& exit 0 + +echo idk. +exit 1 diff --git a/scripts/prepare_torch.sh b/scripts/prepare_torch.sh index 527e8fde7..81c1190e3 100755 --- a/scripts/prepare_torch.sh +++ b/scripts/prepare_torch.sh @@ -7,7 +7,7 @@ cd "$(dirname "$0")" # - .github/workflows/pr_test_build_linux.yml # https://github.com/MrCyjaneK/torch_dart/releases/download/v1.0.17/torch_dart-v1.0.17.tar.gz -HASH=f48a45113ca556b73d8e80ef88012780ced82bcc +HASH=79e5361f43b8aadd340d2900009cf09590b2a0bb if [[ ! -d "torch_dart/.git" ]]; then