Merge pull request #561 from robertknight/int8-gemv-prefetch #1368
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- 'main' | |
- 'ci/**' | |
jobs: | |
ci: | |
strategy: | |
matrix: | |
# The macOS build tests Arm and macOS-specific code paths. | |
# The Linux build tests everything else (x64, wasm, Python ...) | |
os: [ubuntu-latest, macos-14] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust WASM targets | |
run: | | |
rustup target add wasm32-unknown-unknown | |
rustup target add wasm32-wasip1 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install wasmtime | |
run: | | |
curl https://wasmtime.dev/install.sh -sSf | bash | |
ls $HOME/.wasmtime/bin | |
echo "$HOME/.wasmtime/bin" >> "$GITHUB_PATH" | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install Rust nightly toolchain | |
run: rustup toolchain install nightly | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Install Rust x86_64-apple-darwin target | |
run: rustup target add x86_64-apple-darwin | |
if: ${{ matrix.os == 'macos-14' }} | |
- name: Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Install wasm-bindgen | |
# nb. wasm-bindgen-cli version must match `wasm-bindgen` version in Cargo.lock | |
run: cargo install wasm-bindgen-cli --version 0.2.100 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Build | |
run: cargo build | |
- name: Test | |
run: make test | |
# We compile AVX-512 in CI but don't run tests as GitHub Actions' default | |
# runners don't support it yet (https://github.com/actions/runner/issues/1069). | |
- name: Build (AVX-512) | |
run: cargo +nightly check -p rten --features avx512 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Build (WASM) | |
run: make wasm | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Test (WASM) | |
run: | | |
make wasm-test wasm-test-simd | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Build (Intel macOS) | |
run: cargo check --workspace --target x86_64-apple-darwin | |
if: ${{ matrix.os == 'macos-14' }} | |
- name: Lint | |
run: | | |
make checkformatting | |
make lint | |
- name: Docs | |
run: | | |
make docs | |
- name: Setup Python | |
run: | | |
python -m venv .venv | |
.venv/bin/pip install --upgrade pip | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
- name: Python Lint | |
run: | | |
source .venv/bin/activate | |
cd rten-convert | |
pip install -e . | |
pip install -r requirements.dev.txt | |
make check | |
if: ${{ matrix.os == 'ubuntu-latest' }} |