diff --git a/.github/workflows/deltachat-rpc-server.yml b/.github/workflows/deltachat-rpc-server.yml index f073474f6..194b67ddc 100644 --- a/.github/workflows/deltachat-rpc-server.yml +++ b/.github/workflows/deltachat-rpc-server.yml @@ -35,22 +35,29 @@ jobs: path: target/x86_64-unknown-linux-musl/release/deltachat-rpc-server if-no-files-found: error - build_aarch64_linux: - name: Cross-compile deltachat-rpc-server for aarch64 Linux + build_linux: + name: Cross-compile deltachat-rpc-server for aarch64 and armv7 Linux runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: Build - run: sh scripts/aarch64-unknown-linux-musl.sh + run: sh scripts/zig-rpc-server.sh - - name: Upload binary + - name: Upload aarch64 binary uses: actions/upload-artifact@v3 with: name: deltachat-rpc-server-aarch64 path: target/aarch64-unknown-linux-musl/release/deltachat-rpc-server if-no-files-found: error + - name: Upload armv7 binary + uses: actions/upload-artifact@v3 + with: + name: deltachat-rpc-server-armv7 + path: target/armv7-unknown-linux-musleabihf/release/deltachat-rpc-server + if-no-files-found: error + build_android: name: Cross-compile deltachat-rpc-server for Android (armeabi-v7a, arm64-v8a, x86 and x86_64) runs-on: ubuntu-22.04 diff --git a/scripts/README.md b/scripts/README.md index af6a6addd..d8fdf0360 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -20,7 +20,9 @@ and an own build machine. - `run_all.sh` builds Python wheels -- `aarch64-unknown-linux-musl.sh` cross-compiles static `deltachat-rpc-server` for aarch64 +- `zig-rpc-server.sh` compiles binaries of `deltachat-rpc-server` using Zig toolchain statically linked against musl libc. + +- `android-rpc-server.sh` compiles binaries of `deltachat-rpc-server` using Android NDK. ## Triggering runs on the build machine locally (fast!) diff --git a/scripts/aarch64-unknown-linux-musl.sh b/scripts/aarch64-unknown-linux-musl.sh deleted file mode 100755 index 272574fce..000000000 --- a/scripts/aarch64-unknown-linux-musl.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# -# Build statically linked deltachat-rpc-server for aarch64-unknown-linux-musl. - -set -x -set -e - -# Download Zig -rm -fr zig-linux-x86_64-0.10.1 zig-linux-x86_64-0.10.1.tar.xz -wget https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz -tar xf zig-linux-x86_64-0.10.1.tar.xz -export PATH="$PATH:$PWD/zig-linux-x86_64-0.10.1" - -cargo install cargo-zigbuild - -rustup target add aarch64-unknown-linux-musl - -cargo zigbuild --release --target aarch64-unknown-linux-musl -p deltachat-rpc-server --features vendored diff --git a/scripts/zig-rpc-server.sh b/scripts/zig-rpc-server.sh new file mode 100755 index 000000000..f18f301ca --- /dev/null +++ b/scripts/zig-rpc-server.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +# Build statically linked deltachat-rpc-server using cargo-zigbuild. + +set -x +set -e + +unset RUSTFLAGS + +ZIG_VERSION=0.11.0-dev.1935+1d96a17af + +# Download Zig +rm -fr "$ZIG_VERSION" "ZIG_VERSION.tar.xz" +wget "https://ziglang.org/builds/zig-linux-x86_64-$ZIG_VERSION.tar.xz" +tar xf "zig-linux-x86_64-$ZIG_VERSION.tar.xz" +export PATH="$PWD/zig-linux-x86_64-$ZIG_VERSION:$PATH" + +cargo install cargo-zigbuild + +for TARGET in aarch64-unknown-linux-musl armv7-unknown-linux-musleabihf; do + rustup target add "$TARGET" + cargo zigbuild --release --target "$TARGET" -p deltachat-rpc-server --features vendored +done