mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
fix: linux builds (#3485)
This commit is contained in:
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
set -x -e
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
../prepare_torch.sh
|
||||
|
||||
cd ../torch_dart
|
||||
|
||||
# ./build.sh x86_64-linux-gnu
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Executable
+113
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user