157 lines
3.8 KiB
YAML
157 lines
3.8 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
jobs:
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
components: rustfmt
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/fmt
|
|
shell: bash
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
components: clippy
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/lint
|
|
shell: bash
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Build rust docs
|
|
run: ./scripts/ci/rust-docs
|
|
shell: bash
|
|
- name: Install doxygen
|
|
run: sudo apt-get install -y doxygen
|
|
shell: bash
|
|
- name: Build C docs
|
|
run: ./scripts/ci/cmake-docs
|
|
shell: bash
|
|
|
|
cargo-deny:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
checks:
|
|
- advisories
|
|
- bans licenses sources
|
|
continue-on-error: ${{ matrix.checks == 'advisories' }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: EmbarkStudios/cargo-deny-action@v1
|
|
with:
|
|
command: check ${{ matrix.checks }}
|
|
|
|
wasm_tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install wasm-bindgen-cli
|
|
run: cargo install wasm-bindgen-cli wasm-opt
|
|
- name: Install wasm32 target
|
|
run: rustup target add wasm32-unknown-unknown
|
|
- name: run tests
|
|
run: ./scripts/ci/wasm_tests
|
|
|
|
js_tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install wasm-bindgen-cli
|
|
run: cargo install wasm-bindgen-cli wasm-opt
|
|
- name: Install wasm32 target
|
|
run: rustup target add wasm32-unknown-unknown
|
|
- name: run tests
|
|
run: ./scripts/ci/js_tests
|
|
|
|
cmake_build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- name: Install CMocka
|
|
run: sudo apt-get install -y libcmocka-dev
|
|
- name: Install/update CMake
|
|
uses: jwlawson/actions-setup-cmake@v1.12
|
|
with:
|
|
cmake-version: latest
|
|
- name: Build and test C bindings
|
|
run: ./scripts/ci/cmake-build Release Static
|
|
shell: bash
|
|
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
toolchain:
|
|
- 1.60.0
|
|
- nightly
|
|
continue-on-error: ${{ matrix.toolchain == 'nightly' }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: ${{ matrix.toolchain }}
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|
|
|
|
macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|
|
|
|
windows:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: 1.60.0
|
|
default: true
|
|
- uses: Swatinem/rust-cache@v1
|
|
- run: ./scripts/ci/build-test
|
|
shell: bash
|