name: All Tests and Builds
on:
push:
branches: [main]
pull_request:
paths:
- "**.rs"
- .github/**
- .ci/**
- Cargo.toml
jobs:
test:
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-latest, macos-latest, windows-latest]
rust_version: [stable]
exhaustive_tz: [onetz]
check_combinatoric: [no_combinatoric]
include:
- os: ubuntu-latest
rust_version: stable
exhaustive_tz: all_tzs
- os: windows-latest
rust_version: stable
exhaustive_tz: all_tzs
- os: macos-latest
rust_version: stable
exhaustive_tz: all_tzs
- os: ubuntu-latest
rust_version: stable
check_combinatoric: "combinatoric"
- os: ubuntu-latest
rust_version: beta
- os: ubuntu-latest
rust_version: nightly
- os: ubuntu-20.04
rust_version: 1.38.0
- os: macos-latest
rust_version: 1.38.0
- os: windows-latest
rust_version: 1.38.0
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust_version }}
override: true
- uses: Swatinem/rust-cache@v1
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: ${{ matrix.rust_version }}
EXHAUSTIVE_TZ: ${{ matrix.exhaustive_tz }}
CHECK_COMBINATORIC: ${{ matrix.check_combinatoric }}
no_std:
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust with no_std toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: thumbv6m-none-eabi
override: true
- uses: Swatinem/rust-cache@v1
- name: Build no_std lib
run: cargo build --target thumbv6m-none-eabi --color=always
working-directory: ./ci/core-test
intel_sgx:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust with fortanix sgx toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
target: x86_64-fortanix-unknown-sgx
override: true
- uses: Swatinem/rust-cache@v1
- name: Build sgx lib
run: cargo build --target x86_64-fortanix-unknown-sgx --color=always
working-directory: ./ci/core-test
wasm:
strategy:
matrix:
os: [macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
- uses: Swatinem/rust-cache@v1
- name: Install node
uses: actions/setup-node@v1
with:
node-version: "12"
- name: Install wasm-pack
run: |
export RUST_BACKTRACE=1
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
wasm-pack --version
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: stable
WASM: wasm_simple
wasm_emscripten:
strategy:
matrix:
os: [macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-emscripten
override: true
- name: Install node
uses: actions/setup-node@v1
with:
node-version: "12"
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: stable
WASM: wasm_emscripten
wasm_unknown:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
default: true
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: stable
WASM: wasm_unknown
wasm_unknown_no_wasmbind:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-unknown-unknown
override: true
default: true
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: stable
WASM: wasm_unknown_no_wasmbind
wasm_wasi:
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: wasm32-wasi
override: true
default: true
- name: Build and Test
run: bash ci/github.sh
env:
RUST_VERSION: stable
WASM: wasm_wasi
cross-targets:
strategy:
matrix:
target:
- x86_64-sun-solaris
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install cross
run: cargo install cross
- uses: Swatinem/rust-cache@v1
- name: Build static library
run: cross check --target ${{ matrix.target }}
check-docs:
runs-on: ubuntu-latest
name: Check doc links
steps:
- uses: actions/checkout@v2
- name: Install rust nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Check docs build without warnings
env:
RUSTDOCFLAGS: "-D warnings"
run: cargo +nightly doc