Skip to content

Move unix platforms into the same folder to move the unix files into it as well #1626

Move unix platforms into the same folder to move the unix files into it as well

Move unix platforms into the same folder to move the unix files into it as well #1626

Workflow file for this run

on:
pull_request:
name: CI
# If a new push on the PR is done, cancel the build
concurrency:
group: ${{ github.head_ref }}
cancel-in-progress: true
jobs:
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- run: cargo fmt -- --check
clippy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: clippy
- run: cargo clippy --all-targets --features serde -- -D warnings
check:
name: Check ${{ matrix.toolchain }} / ${{ matrix.triple.target }}
runs-on: ${{ matrix.triple.os }}
strategy:
fail-fast: false
matrix:
triple:
- { os: 'ubuntu-latest', target: 'x86_64-unknown-linux-gnu', cross: false }
- { os: 'ubuntu-latest', target: 'i686-unknown-linux-gnu', cross: true }
- { os: 'macos-latest', target: 'x86_64-apple-darwin', cross: false }
- { os: 'windows-latest', target: 'x86_64-pc-windows-msvc', cross: false }
## iOS
- { os: 'macos-latest', target: 'aarch64-apple-ios', cross: true }
- { os: 'macos-latest', target: 'x86_64-apple-ios', cross: true }
## ARM64
- { os: 'ubuntu-latest', target: 'aarch64-unknown-linux-gnu', cross: true }
- { os: 'ubuntu-latest', target: 'aarch64-unknown-linux-musl', cross: true }
## ARMv7
- { os: 'ubuntu-latest', target: 'armv7-unknown-linux-gnueabihf', cross: true }
- { os: 'ubuntu-latest', target: 'armv7-unknown-linux-musleabihf', cross: true }
## ARMv6
- { os: 'ubuntu-latest', target: 'arm-unknown-linux-gnueabihf', cross: true }
- { os: 'ubuntu-latest', target: 'arm-unknown-linux-musleabihf', cross: true }
# Android
- { os: 'ubuntu-latest', target: 'aarch64-linux-android', cross: true }
- { os: 'ubuntu-latest', target: 'armv7-linux-androideabi', cross: true }
- { os: 'ubuntu-latest', target: 'x86_64-linux-android', cross: true }
- { os: 'ubuntu-latest', target: 'i686-linux-android', cross: true }
toolchain:
- "1.63.0" # minimum supported rust version
- stable
- nightly
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- name: Install cross-target
if: matrix.triple.cross
run: rustup target add ${{ matrix.triple.target }}
- name: Check
uses: actions-rs/cargo@v1
with:
command: rustc
args: --target=${{ matrix.triple.target }} --manifest-path=Cargo.toml -- -D warnings
use-cross: ${{ matrix.triple.cross }}
- name: Check debug feature
uses: actions-rs/cargo@v1
with:
command: rustc
args: --target=${{ matrix.triple.target }} --manifest-path=Cargo.toml --features=debug -- -D warnings
use-cross: ${{ matrix.triple.cross }}
- name: Check without multithreading
uses: actions-rs/cargo@v1
with:
command: check
args: --target=${{ matrix.triple.target }} --manifest-path=Cargo.toml --no-default-features
use-cross: ${{ matrix.triple.cross }}
- name: Check example
uses: actions-rs/cargo@v1
with:
command: check
args: --target=${{ matrix.triple.target }} --example simple
use-cross: ${{ matrix.triple.cross }}
- name: Check (Apple app store restrictions)
if: matrix.triple.os == 'macos-latest'
uses: actions-rs/cargo@v1
with:
command: check
args: --features apple-sandbox --target=${{ matrix.triple.target }} --manifest-path=Cargo.toml
use-cross: ${{ matrix.triple.cross }}
- name: Check without multithreading (Apple app store restrictions)
if: matrix.triple.os == 'macos-latest'
uses: actions-rs/cargo@v1
with:
command: check
args: --features apple-sandbox --target=${{ matrix.triple.target }} --manifest-path=Cargo.toml --no-default-features
use-cross: ${{ matrix.triple.cross }}
tests:
needs: [check]
name: Test ${{ matrix.os }} (rust ${{matrix.toolchain}})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
toolchain:
- "1.63.0" # minimum supported rust version
- stable
- nightly
steps:
- uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- name: Check docs
run: cargo rustdoc -- -Z unstable-options --generate-link-to-definition
if: matrix.toolchain == 'nightly'
- name: Check docs with serde
run: cargo rustdoc --features serde -- -Z unstable-options --generate-link-to-definition
if: matrix.toolchain == 'nightly'
- name: Execute tests (not mac)
run: cargo test
if: matrix.os != 'macos-latest'
env:
RUST_BACKTRACE: full
- name: Execute tests (mac)
run: cargo test -- --test-threads 1
if: matrix.os == 'macos-latest'
env:
RUST_BACKTRACE: full
APPLE_CI: 1 # FIXME: remove this once CI mac tests are fixed
- name: Execute tests (not mac, no features)
run: cargo test --no-default-features
if: matrix.os != 'macos-latest'
env:
RUST_BACKTRACE: full
- name: Execute tests (mac, no features)
run: cargo test --no-default-features -- --test-threads 1
if: matrix.os == 'macos-latest'
env:
RUST_BACKTRACE: full
APPLE_CI: 1 # FIXME: remove this once CI mac tests are fixed
- name: Run CPU test
run: cargo test --lib -- --ignored --test-threads 1
env:
RUST_BACKTRACE: full
- name: Check serde feature
run: |
cargo check --features serde
cargo test --features serde --doc
env:
RUST_BACKTRACE: full
c_interface:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: make
unknown-targets:
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- "1.63.0" # minimum supported rust version
- stable
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
components: clippy
- run: cargo clippy --features unknown-ci -- -D warnings
- run: cargo check --features unknown-ci
- run: cargo test --features unknown-ci
- run: cargo install wasm-pack
if: matrix.toolchain == 'stable'
- run: cd test-unknown && wasm-pack build --target web
if: matrix.toolchain == 'stable'