test: trigger CI #6
Workflow file for this run
This file contains hidden or 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: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| lint-test: | |
| name: Lint & Unit Tests | |
| runs-on: | |
| group: hf-mount-ci | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y fuse3 libfuse3-dev | |
| - name: Format check | |
| run: cargo +nightly fmt --check | |
| - name: Clippy | |
| run: cargo clippy --features nfs -- -D warnings | |
| - name: Unit tests | |
| run: cargo test --lib | |
| smoke-test: | |
| name: Smoke Tests (FUSE + NFS) | |
| runs-on: | |
| group: hf-mount-ci | |
| needs: lint-test | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN_HUB_CI }} | |
| HF_ENDPOINT: https://hub-ci.huggingface.co | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y fuse3 libfuse3-dev nfs-common | |
| echo 'user_allow_other' | sudo tee -a /etc/fuse.conf | |
| - name: Build release binaries | |
| run: cargo build --release --features nfs | |
| - name: Integration tests (buckets) | |
| run: cargo test --release --test fuse_ops --test nfs_ops -- --test-threads=1 --nocapture | |
| - name: Integration tests (repo mount) | |
| env: | |
| HF_ENDPOINT: https://huggingface.co | |
| run: unset HF_TOKEN && cargo test --release --test repo_ops -- --test-threads=1 --nocapture | |
| bench: | |
| name: Benchmarks | |
| runs-on: | |
| group: hf-mount-ci | |
| needs: lint-test | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN_HUB_CI }} | |
| HF_ENDPOINT: https://hub-ci.huggingface.co | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y fuse3 libfuse3-dev nfs-common | |
| echo 'user_allow_other' | sudo tee -a /etc/fuse.conf | |
| - name: Build release binaries | |
| run: cargo build --release --features nfs | |
| - name: Run benchmarks | |
| run: cargo test --release --test bench -- --nocapture 2>&1 | tee bench_output.txt | |
| - name: Post benchmark results | |
| if: github.event_name == 'pull_request' | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # Extract the benchmark table from output | |
| TABLE=$(sed -n '/^ =====/,/^ =====/p' bench_output.txt) | |
| if [ -z "$TABLE" ]; then | |
| echo "No benchmark table found in output" | |
| exit 0 | |
| fi | |
| # Build markdown comment | |
| BODY=$(cat <<'HEADER' | |
| ## Benchmark Results | |
| ``` | |
| HEADER | |
| ) | |
| BODY="${BODY} | |
| ${TABLE} | |
| \`\`\`" | |
| gh pr comment "${{ github.event.pull_request.number }}" --body "$BODY" |