Skip to content

Commit

Permalink
Added arm 32 bit targets for linux and arm64 for windows
Browse files Browse the repository at this point in the history
  • Loading branch information
Markos-Th09 committed Apr 6, 2022
1 parent c4b5fc7 commit 8a6d5a5
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 7 deletions.
32 changes: 30 additions & 2 deletions .github/workflows/linux-gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ jobs:
- name: Build the binary
run: |
rustup target add aarch64-unknown-linux-gnu
sudo apt update && sudo apt install -y -qq gcc-i686-linux-gnu gcc-aarch64-linux-gnu
rustup target add armv7-unknown-linux-gnueabi
rustup target add armv7-unknown-linux-gnueabihf
sudo apt update && sudo apt install -y -qq gcc-i686-linux-gnu gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf
mkdir -p .cargo
echo '[target.i686-unknown-linux-gnu]'>>.cargo/config
Expand All @@ -28,11 +30,25 @@ jobs:
echo '[target.aarch64-unknown-linux-gnu]'>>.cargo/config
echo 'linker = "aarch64-linux-gnu-gcc"'>>.cargo/config
cargo build -Zmultitarget --target=x86_64-unknown-linux-gnu --target=i686-unknown-linux-gnu --target=aarch64-unknown-linux-gnu --release -vv
echo '[target.armv7-unknown-linux-gnueabi]' >>.cargo/config
echo 'linker = "arm-linux-gnueabi-gcc"' >>.cargo/config
echo '[target.armv7-unknown-linux-gnueabihf]' >>.cargo/config
echo 'linker = "arm-linux-gnueabihf-gcc"' >>.cargo/config
cargo build -Zmultitarget --target=x86_64-unknown-linux-gnu \
--target=i686-unknown-linux-gnu \
--target=aarch64-unknown-linux-gnu \
--target=aarch64-unknown-linux-gnu \
--target=armv7-unknown-linux-gnueabi \
--target=armv7-unknown-linux-gnueabihf \
--release -vv
cd target/x86_64-unknown-linux-gnu/release/ && tar -cvf react-x86_64-unknown-linux-gnu.tar.gz react && cd ../../..
cd target/aarch64-unknown-linux-gnu/release/ && tar -cvf react-aarch64-unknown-linux-gnu.tar.gz react && cd ../../..
cd target/i686-unknown-linux-gnu/release/ && tar -cvf react-i686-unknown-linux-gnu.tar.gz react && cd ../../..
cd target/armv7-unknown-linux-gnueabi/release/ && tar -cvf react-armv7-unknown-linux-gnueabi.tar.gz react && cd ../../..
cd target/armv7-unknown-linux-gnueabihf/release/ && tar -cvf react-armv7-unknown-linux-gnueabihf.tar.gz react && cd ../../..
- name: Upload react-x86_64-unknown-linux-gnu.tar.gz
uses: actions/upload-artifact@v3
with:
Expand All @@ -48,11 +64,23 @@ jobs:
with:
name: react-i686-unknown-linux-gnu.tar.gz
path: target/i686-unknown-linux-gnu/release/react-i686-unknown-linux-gnu.tar.gz
- name: Upload armv7-unknown-linux-gnueabi.tar.gz
uses: actions/upload-artifact@v3
with:
name: react-armv7-unknown-linux-gnueabi.tar.gz
path: target/armv7-unknown-linux-gnueabi/release/react-armv7-unknown-linux-gnueabi.tar.gz
- name: Upload armv7-unknown-linux-gnueabihf.tar.gz
uses: actions/upload-artifact@v3
with:
name: react-armv7-unknown-linux-gnueabihf.tar.gz
path: target/armv7-unknown-linux-gnueabihf/release/react-armv7-unknown-linux-gnueabihf.tar.gz
- name: Publish in release
uses: softprops/action-gh-release@v1
with:
files: |
target/x86_64-unknown-linux-gnu/release/react-x86_64-unknown-linux-gnu.tar.gz
target/i686-unknown-linux-gnu/release/react-i686-unknown-linux-gnu.tar.gz
target/aarch64-unknown-linux-gnu/release/react-aarch64-unknown-linux-gnu.tar.gz
target/armv7-unknown-linux-gnu/release/react-armv7-unknown-linux-gnueabi.tar.gz
target/armv7-unknown-linux-gnu/release/react-armv7-unknown-linux-gnueabihf.tar.gz
token: ${{ secrets.GH_TOKEN }}
12 changes: 12 additions & 0 deletions .github/workflows/linux-musl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,23 @@ jobs:
with:
name: react-i686-unknown-linux-musl.tar.gz
path: target/i686-unknown-linux-musl/release/react-i686-unknown-linux-musl.tar.gz
- name: Upload armv7-unknown-linux-musleabi.tar.gz
uses: actions/upload-artifact@v3
with:
name: react-armv7-unknown-linux-musleabi.tar.gz
path: target/armv7-unknown-linux-musleabi/release/react-armv7-unknown-linux-musleabi.tar.gz
- name: Upload armv7-unknown-linux-musleabihf.tar.gz
uses: actions/upload-artifact@v3
with:
name: react-armv7-unknown-linux-musleabihf.tar.gz
path: target/armv7-unknown-linux-musleabihf/release/react-armv7-unknown-linux-musleabihf.tar.gz
- name: Publish in release
uses: softprops/action-gh-release@v1
with:
files: |
target/x86_64-unknown-linux-musl/release/react-x86_64-unknown-linux-musl.tar.gz
target/i686-unknown-linux-musl/release/react-i686-unknown-linux-musl.tar.gz
target/aarch64-unknown-linux-musl/release/react-aarch64-unknown-linux-musl.tar.gz
target/armv7-unknown-linux-musl/release/react-armv7-unknown-linux-musleabi.tar.gz
target/armv7-unknown-linux-musl/release/react-armv7-unknown-linux-musleabihf.tar.gz
token: ${{ secrets.GH_TOKEN }}
10 changes: 9 additions & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ jobs:
target: "i686-pc-windows-msvc"
- name: Build the binary
run: |
cargo build -Zmultitarget --target=x86_64-pc-windows-msvc --target=i686-pc-windows-msvc --release -vv
rustup target add aarch64-pc-windows-msvc
cargo build -Zmultitarget --target=x86_64-pc-windows-msvc --target=i686-pc-windows-msvc --target=aarch64-pc-windows-msvc --release -vv
cd target\x86_64-pc-windows-msvc\release && tar -cvf react-x86_64-pc-windows-msvc.zip react.exe && cd ../../..
cd target\i686-pc-windows-msvc\release && tar -cvf react-i686-pc-windows-msvc.zip react.exe && cd ../../..
cd target\aarch64-pc-windows-msvc\release && tar -cvf react-aarch64-pc-windows-msvc.zip react.exe && cd ../../..
- name: Upload react-x86_64-pc-windows-msvc
uses: actions/upload-artifact@v3
with:
Expand All @@ -31,11 +33,17 @@ jobs:
with:
name: react-i686-pc-windows-msvc.zip
path: target\i686-pc-windows-msvc\release\react-i686-pc-windows-msvc.zip
- name: Upload react-aarch64-pc-windows-msvc
uses: actions/upload-artifact@v3
with:
name: react-aarch64-pc-windows-msvc.zip
path: target\aarch64-pc-windows-msvc\release\react-aarch64-pc-windows-msvc.zip

- name: Publish in release
uses: softprops/action-gh-release@v1
with:
files: |
target\x86_64-pc-windows-msvc\release\react-x86_64-pc-windows-msvc.zip
target\i686-pc-windows-msvc\release\react-i686-pc-windows-msvc.zip
target\aarch64-pc-windows-msvc\release\react-aarch64-pc-windows-msvc.zip
token: ${{ secrets.GH_TOKEN }}
4 changes: 3 additions & 1 deletion actions/linux-musl/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ FROM voidlinux/voidlinux-musl

COPY entrypoint.sh /entrypoint.sh

RUN xbps-install -Sy base-devel curl bash cross-i686-linux-musl cross-aarch64-linux-musl
RUN xbps-install -Sy base-devel curl bash cross-i686-linux-musl cross-aarch64-linux-musl cross-arm-linux-musleabi cross-arm-linux-musleabihf

ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
Expand All @@ -13,6 +13,8 @@ RUN set -eux; \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME; \
rustup target add i686-unknown-linux-musl; \
rustup target add aarch64-unknown-linux-musl; \
rustup target add armv7-unknown-linux-musleabi; \
rustup target add armv7-unknown-linux-musleabihf; \
rustup --version; \
cargo --version; \
rustc --version; \
Expand Down
4 changes: 2 additions & 2 deletions actions/linux-musl/action.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: "Build rust for musl libc"
description: "Build rust binaries for musl libc using alpine and docker"
description: "Build rust binaries for musl libc using void linux and docker"
runs:
using: "docker"
image: "Dockerfile"
image: "markosth09/voidlinux-rust-nightly-cross:latest"
15 changes: 14 additions & 1 deletion actions/linux-musl/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,21 @@ echo 'linker = "i686-linux-musl-gcc"' >>.cargo/config
echo '[target.aarch64-unknown-linux-musl]' >>.cargo/config
echo 'linker = "aarch64-linux-musl-gcc"' >>.cargo/config

cargo build -Zmultitarget --target=x86_64-unknown-linux-musl --target=i686-unknown-linux-musl --target=aarch64-unknown-linux-musl --release -vv
echo '[target.armv7-unknown-linux-musleabi]' >>.cargo/config
echo 'linker = "arm-linux-musleabi-gcc"' >>.cargo/config

echo '[target.armv7-unknown-linux-musleabihf]' >>.cargo/config
echo 'linker = "arm-linux-musleabihf-gcc"' >>.cargo/config

cargo build -Zmultitarget --target=x86_64-unknown-linux-musl \
--target=i686-unknown-linux-musl \
--target=aarch64-unknown-linux-musl \
--target=armv7-unknown-linux-musleabi \
--target=armv7-unknown-linux-musleabihf \
--release -vv

cd target/x86_64-unknown-linux-musl/release/ && tar -cvf react-x86_64-unknown-linux-musl.tar.gz react && cd ../../..
cd target/i686-unknown-linux-musl/release/ && tar -cvf react-i686-unknown-linux-musl.tar.gz react && cd ../../..
cd target/aarch64-unknown-linux-musl/release && tar -cvf react-aarch64-unknown-linux-musl.tar.gz react && cd ../../..
cd target/armv7-unknown-linux-musleabi/release/ && tar -cvf react-armv7-unknown-linux-musleabi.tar.gz react && cd ../../..
cd target/armv7-unknown-linux-musleabihf/release/ && tar -cvf react-armv7-unknown-linux-musleabihf.tar.gz react && cd ../../..

0 comments on commit 8a6d5a5

Please sign in to comment.