|
name: Rust |
|
|
|
on: |
|
pull_request: |
|
|
|
jobs: |
|
build: |
|
runs-on: ${{ matrix.os }} |
|
strategy: |
|
matrix: |
|
os: [ubuntu-latest, windows-latest, macOS-latest] |
|
defaults: |
|
run: |
|
working-directory: ./safetensors |
|
|
|
steps: |
|
- uses: actions/checkout@v3 |
|
|
|
- name: Install Rust Stable |
|
uses: actions-rs/toolchain@v1 |
|
with: |
|
toolchain: stable |
|
components: rustfmt, clippy, llvm-tools-preview |
|
override: true |
|
|
|
- uses: Swatinem/rust-cache@v2 |
|
|
|
- name: Install cargo-llvm-cov for Ubuntu |
|
if: matrix.os == 'ubuntu-latest' |
|
run: cargo install cargo-llvm-cov |
|
|
|
- name: Install cargo-readme for Ubuntu |
|
if: matrix.os == 'ubuntu-latest' |
|
run: cargo install cargo-readme |
|
|
|
- name: Build |
|
run: cargo build --all-targets --verbose |
|
|
|
- name: Lint with Clippy |
|
run: cargo clippy --all-targets --all-features -- -D warnings |
|
|
|
- name: Run Tests |
|
run: cargo test --verbose |
|
|
|
- name: Run Audit |
|
|
|
run: cargo audit -D warnings --ignore RUSTSEC-2021-0145 |
|
|
|
- name: Coverage report |
|
if: matrix.os == 'ubuntu-latest' |
|
run: cargo llvm-cov --release --lcov --output-path lcov.info |
|
|
|
- name: Upload to codecov.io |
|
if: matrix.os == 'ubuntu-latest' |
|
uses: codecov/codecov-action@v3 |
|
with: |
|
token: ${{ secrets.CODECOV_TOKEN }} |
|
working-directory: ./safetensors |
|
fail_ci_if_error: true |
|
|
|
|
|
- name: Make sure, Readme generated from lib.rs matches actual Readme |
|
if: matrix.os == 'ubuntu-latest' |
|
shell: bash |
|
run: cargo readme > must_match_readme.md && diff must_match_readme.md README.md && diff must_match_readme.md ../README.md |
|
|