From 5ae0dbcabadc97627c550ba078781982a293372c Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+DevTechGames@users.noreply.github.com> Date: Sun, 14 Apr 2024 17:49:45 -0400 Subject: [PATCH 1/6] added arm64 build support --- .github/workflows/release.yml | 3 +++ dockerfiles/build_linux_arm64 | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 dockerfiles/build_linux_arm64 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e2ac84f1..875a264d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,6 +19,9 @@ jobs: - name: Docker Build run: DOCKER_BUILDKIT=1 docker build . -f dockerfiles/build_linux --output build + + - name: Docker Build + run: DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 . -f dockerfiles/build_linux_arm64 --output ./build/arm64 - name: Docker Build Windows run: DOCKER_BUILDKIT=1 docker build . -f dockerfiles/build_windows --output ./build/windows diff --git a/dockerfiles/build_linux_arm64 b/dockerfiles/build_linux_arm64 new file mode 100644 index 00000000..4b995afb --- /dev/null +++ b/dockerfiles/build_linux_arm64 @@ -0,0 +1,19 @@ +FROM alpine:3.17.2 AS build +RUN apk add meson libgcc musl-dev gcc g++ upx +COPY . /code +RUN mkdir /build +WORKDIR /code +RUN --mount=type=cache,target=/build LDFLAGS='-static' meson /build/code --default-library static --buildtype=release +WORKDIR /build/code +RUN --mount=type=cache,target=/build ninja +RUN mkdir /install +RUN --mount=type=cache,target=/build DESTDIR=/install meson install +RUN upx /install/usr/local/bin/wart-node + +FROM scratch AS export-stage +COPY --from=build install/usr/local/bin/wart-node ./wart-node-linux-arm64 +COPY --from=build install/usr/local/bin/wart-wallet ./wart-wallet-linux-arm64 + +VOLUME ["/warthog/.warthog"] +ENTRYPOINT ["./wart-node-linux-arm64", "--chain-db=/warthog/.warthog/chain.db", "--peers-db=/warthog/.warthog/peers.db"] +EXPOSE 9186 3000 From 9da17123bad2ffefdafe9a5b6c639c2b097b9140 Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+DevTechGames@users.noreply.github.com> Date: Sun, 14 Apr 2024 18:26:09 -0400 Subject: [PATCH 2/6] fixed syntax --- .github/workflows/release.yml | 6 ++++-- dockerfiles/build_linux_arm64 | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 875a264d..b205ebb9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: - name: Docker Build run: DOCKER_BUILDKIT=1 docker build . -f dockerfiles/build_linux --output build - - name: Docker Build + - name: Docker Build Arm64 run: DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 . -f dockerfiles/build_linux_arm64 --output ./build/arm64 - name: Docker Build Windows @@ -45,4 +45,6 @@ jobs: ./build/windows/wart-wallet-windows.exe ./build/windows/wart-node-windows.exe ./build/wart-node-linux - ./build/wart-wallet-linux \ No newline at end of file + ./build/wart-wallet-linux + ./build/wart-node-linux-arm64 + ./build/wart-wallet-linux-arm64 \ No newline at end of file diff --git a/dockerfiles/build_linux_arm64 b/dockerfiles/build_linux_arm64 index 4b995afb..64ad93c5 100644 --- a/dockerfiles/build_linux_arm64 +++ b/dockerfiles/build_linux_arm64 @@ -1,4 +1,7 @@ FROM alpine:3.17.2 AS build +RUN export DOCKER_CLI_EXPERIMENTAL=enabled +RUN docker run --rm --privileged docker/binfmt +RUN docker buildx create --use --name multi-arch-builder RUN apk add meson libgcc musl-dev gcc g++ upx COPY . /code RUN mkdir /build From 6dcccdf5cdbddccc0ec025d06d82277f05b6a535 Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+DevTechGames@users.noreply.github.com> Date: Sun, 14 Apr 2024 18:32:59 -0400 Subject: [PATCH 3/6] removed additions to build_linux_arm64 --- dockerfiles/build_linux_arm64 | 3 --- 1 file changed, 3 deletions(-) diff --git a/dockerfiles/build_linux_arm64 b/dockerfiles/build_linux_arm64 index 64ad93c5..4b995afb 100644 --- a/dockerfiles/build_linux_arm64 +++ b/dockerfiles/build_linux_arm64 @@ -1,7 +1,4 @@ FROM alpine:3.17.2 AS build -RUN export DOCKER_CLI_EXPERIMENTAL=enabled -RUN docker run --rm --privileged docker/binfmt -RUN docker buildx create --use --name multi-arch-builder RUN apk add meson libgcc musl-dev gcc g++ upx COPY . /code RUN mkdir /build From 5baab4a2140eeb887980b7e587d05937b7981523 Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+DevTechGames@users.noreply.github.com> Date: Sun, 14 Apr 2024 19:25:01 -0400 Subject: [PATCH 4/6] fix typo in release.yml --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b205ebb9..cf74fe25 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,5 +46,5 @@ jobs: ./build/windows/wart-node-windows.exe ./build/wart-node-linux ./build/wart-wallet-linux - ./build/wart-node-linux-arm64 - ./build/wart-wallet-linux-arm64 \ No newline at end of file + ./build/arm64/wart-node-linux-arm64 + ./build/arm64/wart-wallet-linux-arm64 \ No newline at end of file From 9b2317c4d8d8345bb1cc3a73c13992a1d67fe3d2 Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+DevTechGames@users.noreply.github.com> Date: Sun, 14 Apr 2024 20:25:48 -0400 Subject: [PATCH 5/6] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d0176f73..68301b0f 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,12 @@ To compile from source see below or [here](https://warthog.network/docs/) for a #### Build for Linux * Run `DOCKER_BUILDKIT=1 docker build . -f dockerfiles/build_linux --output build` in the repo directory. +#### Build for Linux (ARM64) +* Run `export DOCKER_CLI_EXPERIMENTAL=enabled` +* Run `docker run --rm --privileged docker/binfmt` +* Run `docker buildx create --use --name multi-arch-builder` +* Run `DOCKER_BUILDKIT=1 docker buildx build --platform linux/arm64 . -f dockerfiles/build_linux_arm64 --output ./build/arm64` in the repo. +* ARM64 binaries are located in `./build/arm64` directory. #### Build for Windows (cross-compilation on Linux) * Run `DOCKER_BUILDKIT=1 docker build . -f dockerfiles/build_windows --output ./build/windows` in the repo. * Windows binaries are located in `./build/windows` directory. From 245fc991fed5d0701b5e032b89f6e374c7292a92 Mon Sep 17 00:00:00 2001 From: DevTechGames <60560827+JohnnyB813@users.noreply.github.com> Date: Sun, 14 Apr 2024 20:44:02 -0400 Subject: [PATCH 6/6] Update README.md skip-checks:true --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 68301b0f..b63eac8e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Docker Build and Release](https://github.com/JulsKawa/Warthog/actions/workflows/docker_build_and_release.yml/badge.svg)](https://github.com/JulsKawa/Warthog/actions/workflows/docker_build_and_release.yml) +[![Docker Release](https://github.com/JulsKawa/Warthog/actions/workflows/release.yml/badge.svg)](https://github.com/JulsKawa/Warthog/actions/workflows/release.yml) WARTHOG REFERENCE IMPLEMENTATION Copyright (c) 2023 - 2024 Pumbaa, Timon & Rafiki