Extract Components
from System
#1646
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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' |