macro_paste 1.1.5

Macros for all your token pasting needs. Maintained, drop-in replacement for paste.
Documentation
name: Cross platform tests

permissions:
  contents: read

on:
  push:
    branches:
      - main

  pull_request:
    branches:
      - main

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test_cross_std:
    name: Cross platform test (platforms with standard library)

    runs-on: ubuntu-latest

    strategy:
      fail-fast: false

      matrix:
        platform:
          # Tier 1
          - aarch64-unknown-linux-gnu

          # cross does not provide Docker image
          # - i686-pc-windows-gnu
          # - i686-pc-windows-msvc

          - i686-unknown-linux-gnu

          # - x86_64-apple-darwin

          # - x86_64-pc-windows-gnu
          # - x86_64-pc-windows-msvc

          - x86_64-unknown-linux-gnu

          # Tier 2

          # - aarch64-apple-darwin
          # - aarch64-pc-windows-msvc

          - aarch64-unknown-linux-musl
          - arm-unknown-linux-gnueabi
          - arm-unknown-linux-gnueabihf
          - armv7-unknown-linux-gnueabihf

          # - loongarch64-unknown-linux-gnu

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975)
          # - mips-unknown-linux-gnu
          # - mips64-unknown-linux-gnuabi64
          # - mips64el-unknown-linux-gnuabi64
          # - mipsel-unknown-linux-gnu

          - powerpc-unknown-linux-gnu
          - powerpc64-unknown-linux-gnu
          - powerpc64le-unknown-linux-gnu
          - riscv64gc-unknown-linux-gnu
          - s390x-unknown-linux-gnu

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975)
          # - x86_64-unknown-freebsd
          # - x86_64-unknown-illumos

          - x86_64-unknown-linux-musl

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975)
          # - x86_64-unknown-netbsd

          # Tier 3

          # - aarch64-apple-ios
          # - aarch64-apple-ios-sim
          # - aarch64-fuchsia
          # - aarch64-unknown-fuchsia

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/1222)
          # - aarch64-linux-android

          - arm-linux-androideabi
          - arm-unknown-linux-musleabi
          - arm-unknown-linux-musleabihf
          - armv5te-unknown-linux-gnueabi
          - armv5te-unknown-linux-musleabi
          - armv7-linux-androideabi
          - armv7-unknown-linux-gnueabi
          - armv7-unknown-linux-musleabi
          - armv7-unknown-linux-musleabihf

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/634)
          # - asmjs-unknown-emscripten

          - i586-unknown-linux-gnu
          - i586-unknown-linux-musl

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/1222)
          # - i686-linux-android

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975)
          # - i686-unknown-freebsd

          - i686-unknown-linux-musl

          # - mips-unknown-linux-musl
          # - mips64-unknown-linux-muslabi64
          # - mips64el-unknown-linux-muslabi64
          # - mipsel-unknown-linux-musl

          # Could not link to getrandom
          # - sparc64-unknown-linux-gnu

          # BLOCKEDTODO(https://github.com/cross-rs/cross/issues/975)
          # - sparcv9-sun-solaris

          - thumbv7neon-linux-androideabi
          - thumbv7neon-unknown-linux-gnueabihf

    steps:
      - name: Harden the runner (Audit all outbound calls)
        uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
        with:
          egress-policy: audit

      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Install Rust stable
        uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1.0.7
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Install cargo cross
        uses: actions-rs/install@9da1d2adcfe5e7c16992e8242ca33a56b6d9b101 # v0.1.2
        with:
          crate: cross

      - name: Run tests
        run: cross test --target ${{ matrix.platform }}
        env:
          RUSTFLAGS: "-D warnings"
          RUST_BACKTRACE: "1"

# None of these work, needs more investigation
# "test_cross_no_std": {
#   "name": "Cross platform test (no_std, platforms without standard library)",
#   "runs-on": "ubuntu-latest",
#   "strategy": {
#     "fail-fast": false,
#     "matrix": {
#       "platform": [
#         # Tier 3
#         "aarch64-unknown-none-softfloat",
#         "aarch64-unknown-none",
#         "aarch64-unknown-uefi",
#         "armebv7r-none-eabi",
#         "armebv7r-none-eabihf",
#         "armv7a-none-eabi",
#         "armv7r-none-eabi",
#         "armv7r-none-eabihf",
#         "i586-pc-windows-msvc",
#         "i686-unknown-uefi",
#         "nvptx64-nvidia-cuda",
#         "riscv32i-unknown-none-elf",
#         "riscv32imac-unknown-none-elf",
#         "riscv32imc-unknown-none-elf",
#         "riscv64gc-unknown-none-elf",
#         "riscv64imac-unknown-none-elf",
#         "thumbv6m-none-eabi",
#         "thumbv7em-none-eabi",
#         "thumbv7em-none-eabihf",
#         "thumbv7m-none-eabi",
#         "thumbv8m.base-none-eabi",
#         "thumbv8m.main-none-eabi",
#         "thumbv8m.main-none-eabihf",
#         "x86_64-unknown-none",
#         "x86_64-unknown-uefi",
#       ]
#     }
#   },
#   "steps": [
#     {
#       "uses": "actions/checkout@v4",
#       "name": "Checkout"
#     },
#     {
#       "uses": "actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1.0.7
#       "with": {
#         "profile": "minimal",
#         "toolchain": "stable",
#         "override": true
#       },
#       "name": "Install Rust stable"
#     },
#     {
#       "uses": "actions-rs/install@9da1d2adcfe5e7c16992e8242ca33a56b6d9b101 # v0.1.2
#       "with": {
#         "crate": "cross"
#       },
#       "name": "Install cargo cross"
#     },
#     {
#       "run": "cross test --target ${{ matrix.platform }} --no-default-features --features alloc,derive",
#       "name": "Run tests",
#       "env": {
#         "RUSTFLAGS": "-D warnings",
#         "RUST_BACKTRACE": "1",
#       }
#     }
#   ]
# }