diff --git a/.github/workflows/deltachat-rpc-server.yml b/.github/workflows/deltachat-rpc-server.yml index c09d40668..183d5b4a6 100644 --- a/.github/workflows/deltachat-rpc-server.yml +++ b/.github/workflows/deltachat-rpc-server.yml @@ -14,31 +14,8 @@ on: jobs: # Build a version statically linked against musl libc # to avoid problems with glibc version incompatibility. - build_static_linux: - name: Build deltachat-rpc-server for Linux - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - - name: Setup rust target - run: rustup target add x86_64-unknown-linux-musl - - - name: Install musl-gcc - run: sudo apt install musl-tools - - - name: Build - env: - RUSTFLAGS: "-C link-arg=-s" - run: cargo build --release --target x86_64-unknown-linux-musl -p deltachat-rpc-server --features vendored - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: deltachat-rpc-server-x86_64 - path: target/x86_64-unknown-linux-musl/release/deltachat-rpc-server - if-no-files-found: error - build_linux: - name: Cross-compile deltachat-rpc-server for aarch64 and armv7 Linux + name: Cross-compile deltachat-rpc-server for x86_64, aarch64 and armv7 Linux runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 @@ -46,6 +23,13 @@ jobs: - name: Build run: sh scripts/zig-rpc-server.sh + - name: Upload x86_64 binary + uses: actions/upload-artifact@v3 + with: + name: deltachat-rpc-server-x86_64 + path: target/x86_64-unknown-linux-musl/release/deltachat-rpc-server + if-no-files-found: error + - name: Upload aarch64 binary uses: actions/upload-artifact@v3 with: @@ -60,50 +44,6 @@ jobs: 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 - steps: - - uses: actions/checkout@v3 - - - uses: nttld/setup-ndk@v1 - id: setup-ndk - with: - ndk-version: r21d - - - name: Build - env: - ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} - run: sh scripts/android-rpc-server.sh - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: deltachat-rpc-server-android-armv7 - path: target/armv7-linux-androideabi/release/deltachat-rpc-server - if-no-files-found: error - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: deltachat-rpc-server-android-aarch64 - path: target/aarch64-linux-android/release/deltachat-rpc-server - if-no-files-found: error - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: deltachat-rpc-server-android-i686 - path: target/i686-linux-android/release/deltachat-rpc-server - if-no-files-found: error - - - name: Upload binary - uses: actions/upload-artifact@v3 - with: - name: deltachat-rpc-server-android-x86_64 - path: target/x86_64-linux-android/release/deltachat-rpc-server - if-no-files-found: error - build_windows: name: Build deltachat-rpc-server for Windows strategy: @@ -139,8 +79,7 @@ jobs: publish: name: Upload binaries to the release - needs: - ["build_static_linux", "build_linux", "build_android", "build_windows"] + needs: ["build_linux", "build_android", "build_windows"] permissions: contents: write runs-on: "ubuntu-latest" diff --git a/scripts/android-rpc-server.sh b/scripts/android-rpc-server.sh deleted file mode 100755 index 0373245d4..000000000 --- a/scripts/android-rpc-server.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# Build deltachat-rpc-server for Android. - -set -e - -test -n "$ANDROID_NDK_ROOT" || exit 1 - -RUSTUP_TOOLCHAIN="1.64.0" -rustup install "$RUSTUP_TOOLCHAIN" -rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android --toolchain "$RUSTUP_TOOLCHAIN" - -KERNEL="$(uname -s | tr '[:upper:]' '[:lower:]')" -ARCH="$(uname -m)" -NDK_HOST_TAG="$KERNEL-$ARCH" -TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$NDK_HOST_TAG" - -PACKAGE="deltachat-rpc-server" - -export CARGO_PROFILE_RELEASE_LTO=on - -CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$TOOLCHAIN/bin/armv7a-linux-androideabi16-clang" \ - TARGET_CC="$TOOLCHAIN/bin/armv7a-linux-androideabi16-clang" \ - TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \ - TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \ - cargo "+$RUSTUP_TOOLCHAIN" rustc --release --target armv7-linux-androideabi -p $PACKAGE - -CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/aarch64-linux-android21-clang" \ - TARGET_CC="$TOOLCHAIN/bin/aarch64-linux-android21-clang" \ - TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \ - TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \ - cargo "+$RUSTUP_TOOLCHAIN" rustc --release --target aarch64-linux-android -p $PACKAGE - -CARGO_TARGET_I686_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/i686-linux-android16-clang" \ - TARGET_CC="$TOOLCHAIN/bin/i686-linux-android16-clang" \ - TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \ - TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \ - cargo "+$RUSTUP_TOOLCHAIN" rustc --release --target i686-linux-android -p $PACKAGE - -CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/x86_64-linux-android21-clang" \ - TARGET_CC="$TOOLCHAIN/bin/x86_64-linux-android21-clang" \ - TARGET_AR="$TOOLCHAIN/bin/llvm-ar" \ - TARGET_RANLIB="$TOOLCHAIN/bin/llvm-ranlib" \ - cargo "+$RUSTUP_TOOLCHAIN" rustc --release --target x86_64-linux-android -p $PACKAGE diff --git a/scripts/zig-rpc-server.sh b/scripts/zig-rpc-server.sh index f18f301ca..2337fd4be 100755 --- a/scripts/zig-rpc-server.sh +++ b/scripts/zig-rpc-server.sh @@ -7,17 +7,17 @@ set -e unset RUSTFLAGS -ZIG_VERSION=0.11.0-dev.1935+1d96a17af +ZIG_VERSION=0.11.0-dev.2213+515e1c93e # Download Zig -rm -fr "$ZIG_VERSION" "ZIG_VERSION.tar.xz" +rm -fr "$ZIG_VERSION" "zig-linux-x86_64-$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 +for TARGET in x86_64-unknown-linux-musl 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