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: # test backward compatibility - 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' }}"