Merge pull request #49 from japaric/opt-in-serde #232
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
name: Build & Test | |
on: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
branches: [ main ] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-11 | |
- ubuntu-latest | |
- windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Run tests all features | |
run: cargo test --verbose --no-default-features --all-features | |
# Release | |
- name: Build Release | |
run: cargo build --release --verbose | |
- name: Run tests all features | |
run: cargo test --release --verbose --all-features | |
# Release | |
- name: Build Release | |
run: cargo build --release --verbose | |
- name: Run tests all features | |
run: cargo test --release --verbose --all-features | |
# Apple Silicon | |
- if: matrix.os == 'macos-11' | |
run: | | |
brew install pkg-config | |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/* | |
sudo xcode-select -s /Applications/Xcode_12.4.app | |
rustup target install aarch64-apple-darwin | |
rustup target install aarch64-apple-ios | |
- name: Build | |
run: cargo build --verbose | |
- name: Apple Silicon Build | |
if: matrix.os == 'macos-11' | |
run: | | |
cargo build --target aarch64-apple-darwin --tests --verbose | |
cargo build --release --target aarch64-apple-darwin --tests --verbose | |
# ARM64 iOS | |
- name: iOS aarch64 | |
if: matrix.os == 'macos-11' | |
run: | | |
cargo build --target aarch64-apple-ios --tests --verbose | |
cargo build --release --target aarch64-apple-ios --tests --verbose | |
cross-build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
# 32-bit Linux | |
- target: i686-unknown-linux-gnu | |
rust: stable | |
deps: sudo apt update && sudo apt install gcc-multilib | |
# wasm | |
- target: wasm32-unknown-unknown | |
rust: stable | |
# ARM64 Android | |
- target: aarch64-linux-android | |
rust: stable | |
# ARM64 iOS | |
- target: aarch64-apple-ios | |
rust: stable | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
target: ${{ matrix.target }} | |
profile: minimal | |
override: true | |
- run: ${{ matrix.deps }} | |
- run: cargo build --target ${{ matrix.target }} | |
- run: cargo build --target ${{ matrix.target }} --release | |
fuzz: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-11 | |
- ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install latest nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
default: true | |
- uses: actions-rs/install@v0.1 | |
with: | |
crate: cargo-fuzz | |
version: latest | |
- name: Fuzz Base w/ RustCrypto | |
run: cargo fuzz run base -- -runs=10000 |