name: Test

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  test-linux-amd64:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

  test-linux-arm32:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: arm-unknown-linux-musleabi
          override: true

      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: test
          args: --all-features --target arm-unknown-linux-musleabi

  test-linux-arm64:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: aarch64-unknown-linux-musl
          override: true

      - uses: actions-rs/cargo@v1
        with:
          use-cross: true
          command: test
          args: --all-features --target aarch64-unknown-linux-musl

  test-macos-amd64:
    runs-on: macos-10.15
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable

      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features

  # We use an amd64 machine to cross compile for arm64. We cannot run the tests,
  # only verify that the project compiles well.
  build-macos-arm64:
    runs-on: macos-10.15
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: aarch64-apple-darwin

      - run: SDKROOT=$(xcrun --sdk macosx --show-sdk-path) MACOSX_DEPLOYMENT_TARGET=11.0 cargo build --all-features --target aarch64-apple-darwin
