mirror of
https://github.com/chatmail/core.git
synced 2026-05-19 06:46:32 +03:00
ci: build all deltachat-rpc-server binaries without NDK
This commit is contained in:
79
.github/workflows/deltachat-rpc-server.yml
vendored
79
.github/workflows/deltachat-rpc-server.yml
vendored
@@ -14,31 +14,8 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
# Build a version statically linked against musl libc
|
# Build a version statically linked against musl libc
|
||||||
# to avoid problems with glibc version incompatibility.
|
# 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:
|
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
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@@ -46,6 +23,13 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: sh scripts/zig-rpc-server.sh
|
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
|
- name: Upload aarch64 binary
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
@@ -60,50 +44,6 @@ jobs:
|
|||||||
path: target/armv7-unknown-linux-musleabihf/release/deltachat-rpc-server
|
path: target/armv7-unknown-linux-musleabihf/release/deltachat-rpc-server
|
||||||
if-no-files-found: error
|
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:
|
build_windows:
|
||||||
name: Build deltachat-rpc-server for Windows
|
name: Build deltachat-rpc-server for Windows
|
||||||
strategy:
|
strategy:
|
||||||
@@ -139,8 +79,7 @@ jobs:
|
|||||||
|
|
||||||
publish:
|
publish:
|
||||||
name: Upload binaries to the release
|
name: Upload binaries to the release
|
||||||
needs:
|
needs: ["build_linux", "build_android", "build_windows"]
|
||||||
["build_static_linux", "build_linux", "build_android", "build_windows"]
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -7,17 +7,17 @@ set -e
|
|||||||
|
|
||||||
unset RUSTFLAGS
|
unset RUSTFLAGS
|
||||||
|
|
||||||
ZIG_VERSION=0.11.0-dev.1935+1d96a17af
|
ZIG_VERSION=0.11.0-dev.2213+515e1c93e
|
||||||
|
|
||||||
# Download Zig
|
# 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"
|
wget "https://ziglang.org/builds/zig-linux-x86_64-$ZIG_VERSION.tar.xz"
|
||||||
tar xf "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"
|
export PATH="$PWD/zig-linux-x86_64-$ZIG_VERSION:$PATH"
|
||||||
|
|
||||||
cargo install cargo-zigbuild
|
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"
|
rustup target add "$TARGET"
|
||||||
cargo zigbuild --release --target "$TARGET" -p deltachat-rpc-server --features vendored
|
cargo zigbuild --release --target "$TARGET" -p deltachat-rpc-server --features vendored
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user