From 518a22c8bc13619e56aef4f61fb6841c2e0f30e2 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Mon, 12 Aug 2024 04:52:42 -0400 Subject: [PATCH 1/4] Build releases for more targets --- .github/workflows/release.yml | 47 ++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 99026fe2777..d9c654965bb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,21 +76,44 @@ jobs: matrix: target: - x86_64-unknown-linux-musl + - x86_64-unknown-linux-gnu + - i686-unknown-linux-musl + - i686-unknown-linux-gnu + - aarch64-unknown-linux-musl + - aarch64-unknown-linux-gnu + - arm-unknown-linux-musleabihf - arm-unknown-linux-gnueabihf + - s390x-unknown-linux-gnu - x86_64-apple-darwin - aarch64-apple-darwin - x86_64-pc-windows-msvc - x86_64-pc-windows-gnu - i686-pc-windows-msvc + - i686-pc-windows-gnu - aarch64-pc-windows-msvc + - aarch64-pc-windows-gnullvm # When changing these features, make the same change in build-macos-universal2-release. feature: [ small, lean, max, max-pure ] include: - rust: stable - target: x86_64-unknown-linux-musl os: ubuntu-latest + - target: x86_64-unknown-linux-gnu + os: ubuntu-latest + - target: i686-unknown-linux-musl + os: ubuntu-latest + - target: i686-unknown-linux-gnu + os: ubuntu-latest + - target: aarch64-unknown-linux-musl + os: ubuntu-latest + - target: aarch64-unknown-linux-gnu + os: ubuntu-latest + - target: arm-unknown-linux-musleabihf + os: ubuntu-latest - target: arm-unknown-linux-gnueabihf os: ubuntu-latest + - target: s390x-unknown-linux-gnu + os: ubuntu-latest - target: x86_64-apple-darwin os: macos-latest - target: aarch64-apple-darwin @@ -102,8 +125,14 @@ jobs: rust: stable-x86_64-gnu - target: i686-pc-windows-msvc os: windows-latest + - target: i686-pc-windows-gnu + os: windows-latest + rust: stable-x86_64-gnu - target: aarch64-pc-windows-msvc os: windows-latest + - target: aarch64-pc-windows-gnullvm + os: windows-latest + rust: stable-x86_64-gnu # on linux we build with musl which causes trouble with open-ssl. For now, just build max-pure there # even though we could also build with `--features max-control,http-client-reqwest,gitoxide-core-blocking-client,gix-features/fast-sha1` for fast hashing. # It's a TODO. @@ -114,11 +143,23 @@ jobs: feature: lean - target: x86_64-unknown-linux-musl feature: max - - target: arm-unknown-linux-gnueabihf + - target: i686-unknown-linux-musl feature: small - - target: arm-unknown-linux-gnueabihf + - target: i686-unknown-linux-musl feature: lean - - target: arm-unknown-linux-gnueabihf + - target: i686-unknown-linux-musl + feature: max + - target: aarch64-unknown-linux-musl + feature: small + - target: aarch64-unknown-linux-musl + feature: lean + - target: aarch64-unknown-linux-musl + feature: max + - target: arm-unknown-linux-musleabihf + feature: small + - target: arm-unknown-linux-musleabihf + feature: lean + - target: arm-unknown-linux-musleabihf feature: max runs-on: ${{ matrix.os }} From bcb46995be2dcacc7d594ecb0eff952e0879f49d Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Mon, 12 Aug 2024 05:12:52 -0400 Subject: [PATCH 2/4] Stick with max-pure on Linux for now Since building against OpenSSL with `cross` will require more steps to work even for `*-gnu` targets. --- .github/workflows/release.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d9c654965bb..de490461694 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -143,24 +143,54 @@ jobs: feature: lean - target: x86_64-unknown-linux-musl feature: max + - target: x86_64-unknown-linux-gnu + feature: small + - target: x86_64-unknown-linux-gnu + feature: lean + - target: x86_64-unknown-linux-gnu + feature: max - target: i686-unknown-linux-musl feature: small - target: i686-unknown-linux-musl feature: lean - target: i686-unknown-linux-musl feature: max + - target: i686-unknown-linux-gnu + feature: small + - target: i686-unknown-linux-gnu + feature: lean + - target: i686-unknown-linux-gnu + feature: max - target: aarch64-unknown-linux-musl feature: small - target: aarch64-unknown-linux-musl feature: lean - target: aarch64-unknown-linux-musl feature: max + - target: aarch64-unknown-linux-gnu + feature: small + - target: aarch64-unknown-linux-gnu + feature: lean + - target: aarch64-unknown-linux-gnu + feature: max - target: arm-unknown-linux-musleabihf feature: small - target: arm-unknown-linux-musleabihf feature: lean - target: arm-unknown-linux-musleabihf feature: max + - target: arm-unknown-linux-gnueabihf + feature: small + - target: arm-unknown-linux-gnueabihf + feature: lean + - target: arm-unknown-linux-gnueabihf + feature: max + - target: s390x-unknown-linux-gnu + feature: small + - target: s390x-unknown-linux-gnu + feature: lean + - target: s390x-unknown-linux-gnu + feature: max runs-on: ${{ matrix.os }} From 947a24c96f5568935ef382fb57381957037e2471 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Mon, 12 Aug 2024 05:24:03 -0400 Subject: [PATCH 3/4] Remove newly attempted Windows targets These Windows targets may be possible to build, but will require additional customization. No combinations of `-gnu` vs. `-gnullvm` targets and `-msvc`, `-gnu`, or `-gnullvm` toolchains for them (including across architecture) seem to work readily. --- .github/workflows/release.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de490461694..de31a9a11ef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -89,9 +89,7 @@ jobs: - x86_64-pc-windows-msvc - x86_64-pc-windows-gnu - i686-pc-windows-msvc - - i686-pc-windows-gnu - aarch64-pc-windows-msvc - - aarch64-pc-windows-gnullvm # When changing these features, make the same change in build-macos-universal2-release. feature: [ small, lean, max, max-pure ] include: @@ -125,14 +123,8 @@ jobs: rust: stable-x86_64-gnu - target: i686-pc-windows-msvc os: windows-latest - - target: i686-pc-windows-gnu - os: windows-latest - rust: stable-x86_64-gnu - target: aarch64-pc-windows-msvc os: windows-latest - - target: aarch64-pc-windows-gnullvm - os: windows-latest - rust: stable-x86_64-gnu # on linux we build with musl which causes trouble with open-ssl. For now, just build max-pure there # even though we could also build with `--features max-control,http-client-reqwest,gitoxide-core-blocking-client,gix-features/fast-sha1` for fast hashing. # It's a TODO. From c418db9f3df3f816407739e4dc41acb7e23290e8 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Mon, 12 Aug 2024 06:36:02 -0400 Subject: [PATCH 4/4] Add Linux targets for ppc64el and riscv64 --- .github/workflows/release.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de31a9a11ef..2636414ba40 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -83,6 +83,8 @@ jobs: - aarch64-unknown-linux-gnu - arm-unknown-linux-musleabihf - arm-unknown-linux-gnueabihf + - powerpc64le-unknown-linux-gnu + - riscv64gc-unknown-linux-gnu - s390x-unknown-linux-gnu - x86_64-apple-darwin - aarch64-apple-darwin @@ -110,6 +112,10 @@ jobs: os: ubuntu-latest - target: arm-unknown-linux-gnueabihf os: ubuntu-latest + - target: powerpc64le-unknown-linux-gnu + os: ubuntu-latest + - target: riscv64gc-unknown-linux-gnu + os: ubuntu-latest - target: s390x-unknown-linux-gnu os: ubuntu-latest - target: x86_64-apple-darwin @@ -177,6 +183,18 @@ jobs: feature: lean - target: arm-unknown-linux-gnueabihf feature: max + - target: powerpc64le-unknown-linux-gnu + feature: small + - target: powerpc64le-unknown-linux-gnu + feature: lean + - target: powerpc64le-unknown-linux-gnu + feature: max + - target: riscv64gc-unknown-linux-gnu + feature: small + - target: riscv64gc-unknown-linux-gnu + feature: lean + - target: riscv64gc-unknown-linux-gnu + feature: max - target: s390x-unknown-linux-gnu feature: small - target: s390x-unknown-linux-gnu