159 lines
5.5 KiB
YAML
159 lines
5.5 KiB
YAML
name: Server Tests
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- ".github/workflows/tests.yaml"
|
|
- "server/**"
|
|
- "proto/**"
|
|
- "router/**"
|
|
- "launcher/**"
|
|
- "Cargo.lock"
|
|
- "rust-toolchain.toml"
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
run_tests:
|
|
runs-on: [ubuntu-latest]
|
|
|
|
env:
|
|
SCCACHE_GHA_ENABLED: "on"
|
|
RUSTC_WRAPPER: /usr/local/bin/sccache
|
|
SCCACHE: 0.3.3
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.9
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
# Released on: 28 December, 2023
|
|
# Branched from master on: 10 November, 2023
|
|
# https://releases.rs/docs/1.75.0/
|
|
toolchain: 1.75.0
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v1
|
|
- name: Clean unused files
|
|
run: |
|
|
sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android
|
|
sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET
|
|
- name: Install sccache
|
|
run: |
|
|
curl -fsSL https://github.com/mozilla/sccache/releases/download/v$SCCACHE/sccache-v$SCCACHE-x86_64-unknown-linux-musl.tar.gz | tar -xzv --strip-components=1 -C /usr/local/bin sccache-v$SCCACHE-x86_64-unknown-linux-musl/sccache
|
|
chmod +x /usr/local/bin/sccache
|
|
- name: configure sccache
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
|
core.exportVariable('SCCACHE_GHA_CACHE_TO', 'sccache-${{runner.os}}-${{github.ref_name}}');
|
|
core.exportVariable('SCCACHE_GHA_CACHE_FROM', 'sccache-${{runner.os}}-main,sccache-${{runner.os}}-');
|
|
- name: cargo registry cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}-${{ github.sha }}
|
|
restore-keys: |
|
|
cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}-
|
|
cargo-${{ runner.os }}-
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
- name: Install
|
|
run: |
|
|
make install
|
|
- name: Run server tests
|
|
run: |
|
|
pip install pytest
|
|
export HUGGING_FACE_HUB_TOKEN=${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
|
pytest -s -vv server/tests
|
|
- name: Pre-commit checks
|
|
run: |
|
|
pip install pre-commit
|
|
pre-commit install
|
|
pre-commit run --all-files
|
|
- name: Run Rust tests
|
|
run: |
|
|
cargo test
|
|
- name: sccache stats
|
|
run: |
|
|
/usr/local/bin/sccache --show-stats
|
|
|
|
run_tests_intel_xpu:
|
|
runs-on:
|
|
group: intel-pvc-tgi
|
|
|
|
env:
|
|
SCCACHE_GHA_ENABLED: "on"
|
|
RUSTC_WRAPPER: /usr/local/bin/sccache
|
|
SCCACHE: 0.3.3
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: 3.8
|
|
- name: Install Rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
# Released on: 02 May, 2024
|
|
# https://releases.rs/docs/1.78.0/
|
|
toolchain: 1.78.0
|
|
override: true
|
|
components: rustfmt, clippy
|
|
- name: Install Protoc
|
|
uses: arduino/setup-protoc@v1
|
|
- name: Clean unused files
|
|
run: |
|
|
rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android
|
|
rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET
|
|
- name: Install sccache
|
|
run: |
|
|
curl -fsSL https://github.com/mozilla/sccache/releases/download/v$SCCACHE/sccache-v$SCCACHE-x86_64-unknown-linux-musl.tar.gz | tar -xzv --strip-components=1 -C /opt/ sccache-v$SCCACHE-x86_64-unknown-linux-musl/sccache
|
|
chmod +x /usr/bin/sccache
|
|
- name: configure sccache
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
|
core.exportVariable('SCCACHE_GHA_CACHE_TO', 'sccache-${{runner.os}}-${{github.ref_name}}');
|
|
core.exportVariable('SCCACHE_GHA_CACHE_FROM', 'sccache-${{runner.os}}-main,sccache-${{runner.os}}-');
|
|
- name: cargo registry cache
|
|
uses: actions/cache@v3
|
|
with:
|
|
key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}-${{ github.sha }}
|
|
restore-keys: |
|
|
cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.toml') }}-
|
|
cargo-${{ runner.os }}-
|
|
path: |
|
|
~/.cargo/registry
|
|
~/.cargo/git
|
|
- name: Install
|
|
run: |
|
|
make install
|
|
- name: Run server tests
|
|
run: |
|
|
pip install pytest
|
|
export HUGGING_FACE_HUB_TOKEN=${{ secrets.HUGGING_FACE_HUB_TOKEN }}
|
|
pytest -s -vv server/tests
|
|
- name: Pre-commit checks
|
|
run: |
|
|
pip install pre-commit
|
|
pre-commit install
|
|
pre-commit run --all-files
|
|
- name: Run Rust tests
|
|
run: |
|
|
cargo test
|
|
- name: /opt/sccache stats
|
|
run: |
|
|
/opt/sccache --show-stats |