From a172b184284f448819f74fa968ef3677c8d297d0 Mon Sep 17 00:00:00 2001 From: Artur Date: Sat, 5 Nov 2022 16:46:11 +0100 Subject: Add Linux targets for ARM, ARMv7 and AARCH64 (#1419) --- .github/workflows/cd.yml | 28 +++++++++++++++++++++++++--- .github/workflows/ci.yml | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 66 insertions(+), 5 deletions(-) (limited to '.github') diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index c4c91350..7190dd21 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -10,9 +10,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest, macos-latest, windows-latest, ubuntu-22.04] runs-on: ${{ matrix.os }} - + steps: - uses: actions/checkout@v2 @@ -29,10 +29,13 @@ jobs: components: clippy - name: Build + if: matrix.os != 'ubuntu-22.04' run: cargo build - name: Run tests + if: matrix.os != 'ubuntu-22.04' run: make test - name: Run clippy + if: matrix.os != 'ubuntu-22.04' run: | cargo clean make clippy @@ -43,6 +46,22 @@ jobs: rustup target add x86_64-unknown-linux-musl sudo apt-get -qq install musl-tools + - name: Setup ARM toolchain + if: matrix.os == 'ubuntu-22.04' + run: | + rustup target add aarch64-unknown-linux-gnu + rustup target add armv7-unknown-linux-gnueabihf + rustup target add arm-unknown-linux-gnueabihf + + curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz + curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz + + tar xf $GITHUB_WORKSPACE/aarch64.tar.xz + tar xf $GITHUB_WORKSPACE/arm.tar.xz + + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH + - name: Build Release Mac if: matrix.os == 'macos-latest' run: make release-mac @@ -52,6 +71,9 @@ jobs: - name: Build Release Win if: matrix.os == 'windows-latest' run: make release-win + - name: Build Release Linux ARM + if: matrix.os == 'ubuntu-22.04' + run: make release-linux-arm - name: Set SHA if: matrix.os == 'macos-latest' @@ -72,7 +94,7 @@ jobs: ./release/*.tar.gz ./release/*.zip ./release/*.msi - + env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a38b505..4bddddf5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,7 +67,7 @@ jobs: if: matrix.os != 'windows-latest' run: | ls -l ./target/release/gitui - + - name: Binary Size (win) if: matrix.os == 'windows-latest' run: | @@ -120,6 +120,45 @@ jobs: run: | make test-linux-musl + build-linux-arm: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + rust: [nightly, stable, '1.60'] + continue-on-error: ${{ matrix.rust == 'nightly' }} + steps: + - uses: actions/checkout@master + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + profile: minimal + default: true + override: true + - name: Setup ARM toolchain + run: | + rustup target add aarch64-unknown-linux-gnu + rustup target add armv7-unknown-linux-gnueabihf + rustup target add arm-unknown-linux-gnueabihf + + curl -o $GITHUB_WORKSPACE/aarch64.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu.tar.xz + curl -o $GITHUB_WORKSPACE/arm.tar.xz https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/8.2-2018.08/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.xz + + tar xf $GITHUB_WORKSPACE/aarch64.tar.xz + tar xf $GITHUB_WORKSPACE/arm.tar.xz + + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-aarch64-linux-gnu/bin" >> $GITHUB_PATH + echo "$GITHUB_WORKSPACE/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin" >> $GITHUB_PATH + + - name: Build Debug + run: | + make build-linux-arm-debug + - name: Build Release + run: | + make build-linux-arm-release + ls -l ./target/aarch64-unknown-linux-gnu/release/gitui || ls -l ./target/armv7-unknown-linux-gnueabihf/release/gitui || ls -l ./target/arm-unknown-linux-gnueabihf/release/gitui + linting: name: Lints runs-on: ubuntu-latest @@ -131,7 +170,7 @@ jobs: toolchain: stable override: true components: rustfmt - + - run: cargo fmt -- --check - name: cargo-sort -- cgit v1.2.3