diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 4f26159c..44b4ec44 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -17,7 +17,78 @@ concurrency: jobs: run_tests: - runs-on: [ubuntu-latest, intel-pvc-tgi] + runs-on: [ubuntu-latest] + + env: + SCCACHE_GHA_ENABLED: "on" + RUSTC_WRAPPER: /usr/local/bin/sccache + SCCACHE: 0.3.3 + + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v1 + 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: [intel-pvc-tgi] env: SCCACHE_GHA_ENABLED: "on"