caf324b09d
tests / check_code_quality (push) Waiting to run
tests / tests (ubuntu-latest, 3.10) (push) Blocked by required conditions
tests / tests (ubuntu-latest, 3.11) (push) Blocked by required conditions
Deploy "method_comparison" Gradio to Spaces / deploy (push) Waiting to run
Deploy "PEFT shop" Gradio app to Spaces / deploy (push) Waiting to run
tests on transformers main / tests (push) Waiting to run
tests / tests (ubuntu-latest, 3.12) (push) Blocked by required conditions
tests / tests (ubuntu-latest, 3.13) (push) Blocked by required conditions
tests / tests (windows-latest, 3.10) (push) Blocked by required conditions
tests / tests (windows-latest, 3.11) (push) Blocked by required conditions
tests / tests (windows-latest, 3.12) (push) Blocked by required conditions
tests / tests (windows-latest, 3.13) (push) Blocked by required conditions
Secret Leaks / trufflehog (push) Waiting to run
CI security linting / zizmor latest via Cargo (push) Waiting to run
Build documentation / build (push) Failing after 0s
169 lines
5.9 KiB
YAML
169 lines
5.9 KiB
YAML
name: tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'method_comparison/**'
|
|
- '**.md'
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- 'method_comparison/**'
|
|
- '**.md'
|
|
|
|
env:
|
|
HF_HOME: .cache/huggingface
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
check_code_quality:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- name: Set up Python
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: "3.11"
|
|
cache: "pip"
|
|
cache-dependency-path: "setup.py"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install .[dev]
|
|
- name: Check quality
|
|
run: |
|
|
make quality
|
|
|
|
tests:
|
|
needs: check_code_quality
|
|
# dependabot updates (which don't require approval for CI to run) shouldn't trigger unit tests
|
|
if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.user.login == 'dependabot[bot]') }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
os: ["ubuntu-latest", "windows-latest"]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
- name: Make space for cache + models
|
|
# Ubuntu runner have less space free which is problematic since the model
|
|
# cache + dependencies fill up the disk, leaving no space for execution.
|
|
# So we remove some of the stuff we don't need (Java, .NET, etc.)
|
|
#
|
|
# Idea: https://dev.to/mathio/squeezing-disk-space-from-github-actions-runners-an-engineers-guide-3pjg
|
|
if: matrix.os != 'windows-latest'
|
|
run: |
|
|
df -h
|
|
|
|
# Remove Java (JDKs)
|
|
sudo rm -rf /usr/lib/jvm
|
|
|
|
# Remove .NET SDKs
|
|
sudo rm -rf /usr/share/dotnet
|
|
|
|
# Remove Swift toolchain
|
|
sudo rm -rf /usr/share/swift
|
|
|
|
# Remove Haskell (GHC)
|
|
sudo rm -rf /usr/local/.ghcup
|
|
|
|
# Remove Julia
|
|
sudo rm -rf /usr/local/julia*
|
|
|
|
# Remove Android SDKs
|
|
sudo rm -rf /usr/local/lib/android
|
|
|
|
# Remove Chromium (optional if not using for browser tests)
|
|
sudo rm -rf /usr/local/share/chromium
|
|
|
|
# Remove Microsoft/Edge and Google Chrome builds
|
|
sudo rm -rf /opt/microsoft /opt/google
|
|
|
|
# Remove Azure CLI
|
|
sudo rm -rf /opt/az
|
|
|
|
# Remove PowerShell
|
|
sudo rm -rf /usr/local/share/powershell
|
|
|
|
# Remove CodeQL and other toolcaches
|
|
sudo rm -rf /opt/hostedtoolcache
|
|
|
|
df -h
|
|
- name: Model cache
|
|
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
with:
|
|
# Avoid caching HF_HOME/modules and Python cache files to prevent interoperability
|
|
# issues and potential cache poisioning. We also avoid lock files to prevent runs
|
|
# avoiding re-download because they see a lock file.
|
|
path: |
|
|
${{ env.HF_HOME }}/hub/**
|
|
!${{ env.HF_HOME }}/**/*.pyc
|
|
key: model-cache-${{ github.run_id }}
|
|
restore-keys: model-cache-
|
|
enableCrossOsArchive: true
|
|
|
|
- name: Dump cache content
|
|
# TODO: remove this step after 2025-02-15
|
|
if: matrix.os != 'windows-latest'
|
|
run: |
|
|
SHASUM=sha256sum
|
|
[ -f "$(which shasum)" ] && SHASUM=shasum
|
|
find "${{ env.HF_HOME }}/hub" -type f -exec "$SHASUM" {} \; > cache_content_initial || true
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
cache: "pip"
|
|
cache-dependency-path: "setup.py"
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install setuptools
|
|
# cpu version of pytorch
|
|
pip install -e .[test]
|
|
- name: Test with pytest
|
|
shell: bash
|
|
env:
|
|
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
|
TRANSFORMERS_IS_CI: 1
|
|
CI: 1
|
|
run: |
|
|
make test
|
|
# clean up all pytest temporary directories that are kept due to retention since space
|
|
# is a scarce resource on the runners and tasks like model cache creation (further below)
|
|
# fail if there's not enough space available.
|
|
(rm -r "/tmp/pytest-of-$(id -u -n)" || true)
|
|
- name: Dump cache content and diff
|
|
# This is just debug info so that we can monitor if the model cache diverges substantially
|
|
# over time and what the diverging model is.
|
|
# TODO: remove after 2025-02-15
|
|
if: matrix.os != 'windows-latest'
|
|
run: |
|
|
SHASUM=sha256sum
|
|
[ -f "$(which shasum)" ] && SHASUM=shasum
|
|
find "${{ env.HF_HOME }}/hub" -type f -exec "$SHASUM" {} \; > cache_content_after || true
|
|
diff -udp cache_content_initial cache_content_after || true
|
|
- name: Delete old model cache entries
|
|
run: |
|
|
# make sure that cache cleaning doesn't break the pipeline
|
|
python scripts/ci_clean_cache.py -d || true
|
|
- name: Update model cache
|
|
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
# Only let one runner (preferably the one that covers most tests) update the model cache
|
|
# after *every* run. This way we make sure that our cache is never outdated and we don't
|
|
# have to keep track of hashes.
|
|
if: always() && matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10'
|
|
with:
|
|
path: |
|
|
${{ env.HF_HOME }}/hub/**
|
|
!${{ env.HF_HOME }}/**/*.pyc
|
|
key: model-cache-${{ github.run_id }}
|