From a2599ef08a6aa7599246746bd299d0d63d162e02 Mon Sep 17 00:00:00 2001 From: link2xt Date: Tue, 6 Jun 2023 14:30:30 +0000 Subject: [PATCH] ci: run `cargo check` with musl libc --- .github/workflows/ci.yml | 4 ++++ scripts/zig-musl-check.sh | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100755 scripts/zig-musl-check.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9f7008c3c..cd2d085b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,6 +38,10 @@ jobs: - name: Check run: cargo check --workspace --all-targets --all-features + # Check with musl libc target which is used for `deltachat-rpc-server` releases. + - name: Check musl + run: scripts/zig-musl-check.sh + cargo_deny: name: cargo deny runs-on: ubuntu-latest diff --git a/scripts/zig-musl-check.sh b/scripts/zig-musl-check.sh new file mode 100755 index 000000000..1e4afd6db --- /dev/null +++ b/scripts/zig-musl-check.sh @@ -0,0 +1,28 @@ +#!/bin/sh +# +# Run `cargo check` with musl libc. +# This requires `zig` to compile vendored openssl. + +set -x +set -e + +unset RUSTFLAGS + +# Pin Rust version to avoid uncontrolled changes in the compiler and linker flags. +export RUSTUP_TOOLCHAIN=1.70.0 + +ZIG_VERSION=0.11.0-dev.2213+515e1c93e + +# Download Zig +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" + +rustup target add x86_64-unknown-linux-musl +CC="$PWD/scripts/zig-cc" \ +TARGET_CC="$PWD/scripts/zig-cc" \ +CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER="$PWD/scripts/zig-cc" \ +LD="$PWD/scripts/zig-cc" \ +ZIG_TARGET="x86_64-linux-musl" \ +cargo check --release --target x86_64-unknown-linux-musl -p deltachat_ffi --features jsonrpc