| name: tests |
|
|
| on: |
| workflow_dispatch: |
| push: |
| branches: |
| - "main" |
| paths: |
| - "**/*.py" |
| - "requirements.txt" |
| - ".github/workflows/*.yml" |
| pull_request: |
| branches: |
| - "main" |
| paths: |
| - "**/*.py" |
| - "requirements.txt" |
| - ".github/workflows/*.yml" |
|
|
| jobs: |
| tests: |
| strategy: |
| fail-fast: false |
| matrix: |
| python: |
| - "3.9" |
| - "3.10" |
| - "3.11" |
| - "3.12" |
| os: |
| - "ubuntu-latest" |
| - "windows-latest" |
| - "macos-13" |
| transformers: |
| - null |
| include: |
| - python: "3.9" |
| os: "ubuntu-latest" |
| transformers: "4.49.0" |
| - python: "3.9" |
| os: "ubuntu-latest" |
| transformers: "4.51.0" |
|
|
| runs-on: ${{ matrix.os }} |
|
|
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.os }}-${{ matrix.python }}-${{ matrix.transformers }} |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} |
|
|
| env: |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} |
| OS_NAME: ${{ matrix.os }} |
|
|
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
|
|
| - name: Set up Python |
| uses: actions/setup-python@v5 |
| with: |
| python-version: ${{ matrix.python }} |
| cache: "pip" |
| cache-dependency-path: "**/requirements*.txt" |
|
|
| - name: Install dependencies |
| run: | |
| python -m pip install --upgrade pip |
| python -m pip install ".[torch,dev]" |
| |
| - name: Install transformers |
| if: ${{ matrix.transformers }} |
| run: | |
| python -m pip install "transformers==${{ matrix.transformers }}" |
| |
| - name: Cache files |
| id: hf-hub-cache |
| uses: actions/cache@v4 |
| with: |
| path: ${{ runner.temp }}/huggingface |
| key: huggingface-${{ matrix.os }}-${{ matrix.python }}-${{ matrix.transformers }}-${{ hashFiles('tests/version.txt') }} |
|
|
| - name: Check quality |
| run: | |
| make style && make quality |
| |
| - name: Check license |
| run: | |
| make license |
| |
| - name: Check build |
| run: | |
| make build |
| |
| - name: Test with pytest |
| run: | |
| make test |
| env: |
| HF_HOME: ${{ runner.temp }}/huggingface |
| HF_HUB_OFFLINE: "${{ steps.hf-hub-cache.outputs.cache-hit == 'true' && '1' || '0' }}" |
|
|