From fbc71959ab34425165bd7102081142981836bb62 Mon Sep 17 00:00:00 2001 From: Volker Mische Date: Mon, 15 Jul 2024 11:50:57 +0200 Subject: [PATCH] chore: try to run arm build on GitHub Actions --- .github/workflows/ci.yml | 285 +++++++++++++++++++-------------------- 1 file changed, 142 insertions(+), 143 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e79af1..5383132 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,9 +1,10 @@ name: CI -on: - pull_request: - push: - branches: master +#on: +# pull_request: +# push: +# branches: master +on: [push] env: MSRV: 1.63 @@ -21,149 +22,147 @@ jobs: - id: msrv run: echo "::set-output name=msrv::$(echo $MSRV)" - # NOTE vmx 2022-06-14: currently doesn't work, hence run it on CircleCI - # for now. - #linux_foreign: - # strategy: - # matrix: - # include: - # # 64-bit Linux/arm64 - # - target: aarch64-unknown-linux-gnu - # rust: nightly - # arch: aarch64 - # - # runs-on: ubuntu-18.04 - # steps: - # - uses: actions/checkout@v2 - # - uses: uraimo/run-on-arch-action@v2.1.1 - # name: Run commands - # id: runcmd - # with: - # arch: aarch64 - # distro: ubuntu18.04 - # - # # Not required, but speeds up builds by storing container images in - # # a GitHub package registry. - # githubToken: ${{ github.token }} - # - # install: | - # apt-get update -q -y - # apt-get install -q -y ocl-icd-opencl-dev curl build-essential - # curl https://sh.rustup.rs -sSf | sh -s -- --profile minimal --default-toolchain ${{ matrix.rust }} -y - # source $HOME/.cargo/env - # - # run: | - # $HOME/.cargo/bin/cargo test --release --target ${{ matrix.target }} - # $HOME/.cargo/bin/cargo test --release --features portable --target ${{ matrix.target }} - - # Linux tests - linux: - needs: set-msrv - strategy: - matrix: - include: - # 32-bit Linux/x86 - - target: i686-unknown-linux-gnu - rust: ${{needs.set-msrv.outputs.msrv}} - deps: sudo apt update && sudo apt install gcc-multilib - - target: i686-unknown-linux-gnu - rust: stable - deps: sudo apt update && sudo apt install gcc-multilib - - # 64-bit Linux/x86_64 - - target: x86_64-unknown-linux-gnu - rust: ${{needs.set-msrv.outputs.msrv}} - - target: x86_64-unknown-linux-gnu - rust: stable - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.rust }} - target: ${{ matrix.target }} - override: true - - name: Install opencl - run: sudo apt-get install -y ocl-icd-opencl-dev - - run: ${{ matrix.deps }} - - run: cargo test --target ${{ matrix.target }} - - run: cargo test --target ${{ matrix.target }} --features portable - - # macOS tests - macos: - needs: set-msrv - strategy: - matrix: - toolchain: - - ${{needs.set-msrv.outputs.msrv}} - - stable - - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - target: x86_64-apple-darwin - override: true - - run: cargo test - - run: cargo test --features portable - - # Windows tests - windows: - needs: set-msrv + linux_foreign: strategy: matrix: include: - # 64-bit Windows (MSVC) - - target: x86_64-pc-windows-msvc - toolchain: stable + # 64-bit Linux/arm64 + - target: aarch64-unknown-linux-gnu + rust: nightly + arch: aarch64 - runs-on: windows-latest + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - target: ${{ matrix.target }} - override: true - - uses: msys2/setup-msys2@v2 - - run: cargo test --target ${{ matrix.target }} - - run: cargo test --target ${{ matrix.target }} --features portable - - clippy_check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - - run: rustup component add clippy - - uses: actions-rs/clippy-check@v1 + - uses: uraimo/run-on-arch-action@v2 + name: Run commands + id: runcmd with: - token: ${{ secrets.GITHUB_TOKEN }} - args: --all-features - - check_fmt_and_docs: - name: Checking fmt and docs - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@master - - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: nightly - override: true - components: rustfmt - - - name: setup - run: | - rustup component add rustfmt - rustc --version - - name: fmt - run: cargo fmt --all -- --check - - - name: Docs - run: cargo doc + arch: aarch64 + distro: ubuntu24.04 + + # Not required, but speeds up builds by storing container images in + # a GitHub package registry. + githubToken: ${{ github.token }} + + install: | + apt-get update -q -y + apt-get install -q -y ocl-icd-opencl-dev curl build-essential + curl https://sh.rustup.rs -sSf | sh -s -- --profile minimal --default-toolchain ${{ matrix.rust }} -y + source $HOME/.cargo/env + + run: | + $HOME/.cargo/bin/cargo test --release --target ${{ matrix.target }} + $HOME/.cargo/bin/cargo test --release --features portable --target ${{ matrix.target }} + +# # Linux tests +# linux: +# needs: set-msrv +# strategy: +# matrix: +# include: +# # 32-bit Linux/x86 +# - target: i686-unknown-linux-gnu +# rust: ${{needs.set-msrv.outputs.msrv}} +# deps: sudo apt update && sudo apt install gcc-multilib +# - target: i686-unknown-linux-gnu +# rust: stable +# deps: sudo apt update && sudo apt install gcc-multilib +# +# # 64-bit Linux/x86_64 +# - target: x86_64-unknown-linux-gnu +# rust: ${{needs.set-msrv.outputs.msrv}} +# - target: x86_64-unknown-linux-gnu +# rust: stable +# +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v2 +# - uses: actions-rs/toolchain@v1 +# with: +# profile: minimal +# toolchain: ${{ matrix.rust }} +# target: ${{ matrix.target }} +# override: true +# - name: Install opencl +# run: sudo apt-get install -y ocl-icd-opencl-dev +# - run: ${{ matrix.deps }} +# - run: cargo test --target ${{ matrix.target }} +# - run: cargo test --target ${{ matrix.target }} --features portable +# +# # macOS tests +# macos: +# needs: set-msrv +# strategy: +# matrix: +# toolchain: +# - ${{needs.set-msrv.outputs.msrv}} +# - stable +# +# runs-on: macos-latest +# steps: +# - uses: actions/checkout@v2 +# - uses: actions-rs/toolchain@v1 +# with: +# profile: minimal +# toolchain: ${{ matrix.toolchain }} +# target: x86_64-apple-darwin +# override: true +# - run: cargo test +# - run: cargo test --features portable +# +# # Windows tests +# windows: +# needs: set-msrv +# strategy: +# matrix: +# include: +# # 64-bit Windows (MSVC) +# - target: x86_64-pc-windows-msvc +# toolchain: stable +# +# runs-on: windows-latest +# steps: +# - uses: actions/checkout@v2 +# - uses: actions-rs/toolchain@v1 +# with: +# profile: minimal +# toolchain: ${{ matrix.toolchain }} +# target: ${{ matrix.target }} +# override: true +# - uses: msys2/setup-msys2@v2 +# - run: cargo test --target ${{ matrix.target }} +# - run: cargo test --target ${{ matrix.target }} --features portable +# +# clippy_check: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@master +# - run: rustup component add clippy +# - uses: actions-rs/clippy-check@v1 +# with: +# token: ${{ secrets.GITHUB_TOKEN }} +# args: --all-features +# +# check_fmt_and_docs: +# name: Checking fmt and docs +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@master +# +# - uses: actions-rs/toolchain@v1 +# with: +# profile: minimal +# toolchain: nightly +# override: true +# components: rustfmt +# +# - name: setup +# run: | +# rustup component add rustfmt +# rustc --version +# - name: fmt +# run: cargo fmt --all -- --check +# +# - name: Docs +# run: cargo doc