From b3bcb1d85b4553139e0403c0c3d534e31fdba7f1 Mon Sep 17 00:00:00 2001 From: Sunshine Date: Sun, 20 Jun 2021 00:43:32 -1000 Subject: [PATCH] add GNU/Linux AArch64 CD job --- .github/workflows/cd.yml | 44 +++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 81528ea..2201dfc 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -30,20 +30,20 @@ jobs: uses: actions/checkout@v2 - name: Prepare cross-platform environment run: | - sudo mkdir -p /cross-build-arm + sudo mkdir -p /cross-build sudo touch /etc/apt/sources.list.d/armhf.list echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports/ bionic main" | sudo tee -a /etc/apt/sources.list.d/armhf.list sudo apt-get update sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-armhf-cross libc6-dev-armhf-cross sudo apt-get download libssl1.1:armhf libssl-dev:armhf - sudo dpkg -x libssl1.1*.deb /cross-build-arm - sudo dpkg -x libssl-dev*.deb /cross-build-arm + sudo dpkg -x libssl1.1*.deb /cross-build + sudo dpkg -x libssl-dev*.deb /cross-build rustup target add arm-unknown-linux-gnueabihf - echo "C_INCLUDE_PATH=/cross-build-arm/usr/include" >> $GITHUB_ENV - echo "OPENSSL_INCLUDE_DIR=/cross-build-arm/usr/include/arm-linux-gnueabihf" >> $GITHUB_ENV - echo "OPENSSL_LIB_DIR=/cross-build-arm/usr/lib/arm-linux-gnueabihf" >> $GITHUB_ENV + echo "C_INCLUDE_PATH=/cross-build/usr/include" >> $GITHUB_ENV + echo "OPENSSL_INCLUDE_DIR=/cross-build/usr/include/arm-linux-gnueabihf" >> $GITHUB_ENV + echo "OPENSSL_LIB_DIR=/cross-build/usr/lib/arm-linux-gnueabihf" >> $GITHUB_ENV echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV - echo "RUSTFLAGS=-C linker=arm-linux-gnueabihf-gcc -L/usr/arm-linux-gnueabihf/lib -L/cross-build-arm/usr/lib/arm-linux-gnueabihf -L/cross-build-arm/lib/arm-linux-gnueabihf" >> $GITHUB_ENV + echo "RUSTFLAGS=-C linker=arm-linux-gnueabihf-gcc -L/usr/arm-linux-gnueabihf/lib -L/cross-build/usr/lib/arm-linux-gnueabihf -L/cross-build/lib/arm-linux-gnueabihf" >> $GITHUB_ENV - name: Build the executable run: cargo build --release --target=arm-unknown-linux-gnueabihf - name: Attach artifact to the release @@ -53,6 +53,36 @@ jobs: path: target/arm-unknown-linux-gnueabihf/release/monolith repo-token: ${{ secrets.GITHUB_TOKEN }} + gnu_linux_aarch64: + runs-on: ubuntu-20.04 + steps: + - name: Checkout the repository + uses: actions/checkout@v2 + - name: Prepare cross-platform environment + run: | + sudo mkdir -p /cross-build + sudo touch /etc/apt/sources.list.d/arm64.list + echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal main" | sudo tee -a /etc/apt/sources.list.d/arm64.list + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross + sudo apt-get download libssl1.1:arm64 libssl-dev:arm64 + sudo dpkg -x libssl1.1*.deb /cross-build + sudo dpkg -x libssl-dev*.deb /cross-build + rustup target add aarch64-unknown-linux-gnu + echo "C_INCLUDE_PATH=/cross-build/usr/include" >> $GITHUB_ENV + echo "OPENSSL_INCLUDE_DIR=/cross-build/usr/include/aarch64-linux-gnu" >> $GITHUB_ENV + echo "OPENSSL_LIB_DIR=/cross-build/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV + echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV + echo "RUSTFLAGS=-C linker=aarch64-linux-gnu-gcc -L/usr/aarch64-linux-gnu/lib -L/cross-build/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV + - name: Build the executable + run: cargo build --release --target=aarch64-unknown-linux-gnu + - name: Attach artifact to the release + uses: Shopify/upload-to-release@1.0.0 + with: + name: monolith-gnu-linux-aarch64 + path: target/aarch64-unknown-linux-gnu/release/monolith + repo-token: ${{ secrets.GITHUB_TOKEN }} + gnu_linux_x86_64: runs-on: ubuntu-18.04 steps: