name: Rust ARM CI on: push: branches: - main pull_request: branches: - main merge_group: workflow_dispatch: permissions: contents: read env: CARGO_TERM_COLOR: always jobs: verify: name: cargo ${{ matrix.task }} (${{ matrix.target }}) # Gitea currently has only amd64 Linux runners; retain ARM coverage here. strategy: fail-fast: false matrix: include: - task: check target: aarch64-unknown-linux-gnu musl: false - task: test target: aarch64-unknown-linux-gnu musl: false - task: check target: aarch64-unknown-linux-musl musl: true - task: test target: aarch64-unknown-linux-musl musl: true runs-on: ubuntu-24.04-arm timeout-minutes: 25 steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: persist-credentials: false - name: Install musl toolchain if: matrix.musl run: | sudo apt-get update sudo apt-get install --no-install-recommends musl-tools - name: Install Rust toolchain uses: actions-rust-lang/setup-rust-toolchain@ecabd13d1c56bd1345c230e542e9144811ad706f # v2 with: target: ${{ matrix.target }} cache-key: ${{ matrix.task }}-${{ matrix.target }} - name: Run ${{ matrix.task }} with all features run: | cargo ${{ matrix.task }} \ --workspace \ --all-targets \ --all-features \ --target ${{ matrix.target }} \ --locked - name: Run ${{ matrix.task }} without default features run: | cargo ${{ matrix.task }} \ --workspace \ --all-targets \ --no-default-features \ --target ${{ matrix.target }} \ --locked