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: 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: | 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