| 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.45.0"
|
| - python: "3.9"
|
| os: "ubuntu-latest"
|
| transformers: "4.49.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' }}"
|
|
|