feat: make HF token optional for public repos #2
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 | |
| - name: Build release binaries | |
| run: cargo build --release --features nfs | |
| - name: Integration tests | |
| run: cargo test --release --test fuse_ops --test repo_ops --test nfs_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 | |
| - 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" |