From 3360dcbebced3f187cb82caefb260f8686535a8e Mon Sep 17 00:00:00 2001 From: Fabian Boehm Date: Wed, 7 Aug 2024 19:22:59 +0200 Subject: [PATCH] Make static builds on Github Actions For x86_64 and cross-compiled for aarch64, manually triggered It *seems* to work, but I had to explicitly disable gettext for it (which is AFAICT currently non-functional under musl anyway). Also it will create one .zip containing two .tar.xzs. It is about 8MB, which should be fine, tbh. --- .github/workflows/staticbuild.yml | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/staticbuild.yml diff --git a/.github/workflows/staticbuild.yml b/.github/workflows/staticbuild.yml new file mode 100644 index 000000000..e49908209 --- /dev/null +++ b/.github/workflows/staticbuild.yml @@ -0,0 +1,47 @@ +name: staticbuilds + +on: + # release: + # types: [published] + # schedule: + # - cron: "14 13 * * *" + workflow_dispatch: + +env: + CTEST_PARALLEL_LEVEL: "1" + CMAKE_BUILD_PARALLEL_LEVEL: "4" + +jobs: + staticbuilds: + + runs-on: ubuntu-latest + + permissions: + contents: read + + steps: + - uses: dtolnay/rust-toolchain@1.70 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Prepare + run: | + sudo apt install python3-sphinx + rustup target add x86_64-unknown-linux-musl + rustup target add aarch64-unknown-linux-musl + sudo apt install musl-tools crossbuild-essential-arm64 -y + - name: Build + run: | + CMAKE_WITH_GETTEXT=0 CC=aarch64-linux-gnu-gcc RUSTFLAGS="-C linker=aarch64-linux-gnu-gcc -C link-arg=-lgcc" cargo build --release --target aarch64-unknown-linux-musl + cargo build --release --target x86_64-unknown-linux-musl + - name: Compress + run: | + tar -cazf fish-amd64.tar.xz -C target/x86_64-unknown-linux-musl/release/ fish{,_indent,_key_reader} + tar -cazf fish-aarch64.tar.xz -C target/aarch64-unknown-linux-musl/release/ fish{,_indent,_key_reader} + - uses: actions/upload-artifact@v4 + with: + name: fish + path: | + fish-amd64.tar.xz + fish-aarch64.tar.xz + retention-days: 14