Fix transformers API compatibility: support v4.26+ and v5.0+ with version-aware parameter selection #6635
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
| # This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Build | |
| on: | |
| push: | |
| branches: ['main'] | |
| paths: | |
| - 'flaml/**' | |
| - 'test/**' | |
| - 'notebook/**' | |
| - '.github/workflows/python-package.yml' | |
| - 'setup.py' | |
| pull_request: | |
| branches: ['main'] | |
| paths: | |
| - 'flaml/**' | |
| - 'test/**' | |
| - 'notebook/**' | |
| - '.github/workflows/python-package.yml' | |
| - 'setup.py' | |
| merge_group: | |
| types: [checks_requested] | |
| schedule: | |
| # Every other day at 02:00 UTC | |
| - cron: '0 2 */2 * *' | |
| permissions: | |
| contents: write | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: On mac, install libomp to facilitate lgbm and xgboost install | |
| if: matrix.os == 'macos-latest' | |
| run: | | |
| brew update | |
| brew install libomp | |
| export CC=/usr/bin/clang | |
| export CXX=/usr/bin/clang++ | |
| export CPPFLAGS="$CPPFLAGS -Xpreprocessor -fopenmp" | |
| export CFLAGS="$CFLAGS -I/usr/local/opt/libomp/include" | |
| export CXXFLAGS="$CXXFLAGS -I/usr/local/opt/libomp/include" | |
| export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/local/opt/libomp/lib -L/usr/local/opt/libomp/lib -lomp" | |
| - name: Install packages and dependencies | |
| run: | | |
| python -m pip install --upgrade pip wheel setuptools | |
| pip install -e . | |
| python -c "import flaml" | |
| pip install -e .[test] | |
| - name: On Ubuntu python 3.11, install pyspark 3.5.1 | |
| if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' | |
| run: | | |
| pip install pyspark==3.5.1 | |
| pip list | grep "pyspark" | |
| - name: On Ubuntu python 3.12, install pyspark 4.0.1 | |
| if: matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' | |
| run: | | |
| pip install pyspark==4.0.1 | |
| pip list | grep "pyspark" | |
| - name: On Ubuntu python 3.13, install pyspark 4.1.0 | |
| if: matrix.python-version == '3.13' && matrix.os == 'ubuntu-latest' | |
| run: | | |
| pip install pyspark==4.1.0 | |
| pip list | grep "pyspark" | |
| # # TODO: support ray | |
| # - name: If linux and python<3.11, install ray 2 | |
| # if: matrix.os == 'ubuntu-latest' && matrix.python-version < '3.11' | |
| # run: | | |
| # pip install "ray[tune]<2.5.0" | |
| - name: Install prophet when on linux | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| pip install -e .[forecast] | |
| # TODO: support vw for python 3.10+ | |
| - name: If linux and python<3.10, install vw | |
| if: matrix.os == 'ubuntu-latest' && matrix.python-version < '3.10' | |
| run: | | |
| pip install -e .[vw] | |
| - name: Pip freeze | |
| run: | | |
| pip freeze | |
| - name: Check dependencies | |
| run: | | |
| python test/check_dependency.py | |
| - name: Clear pip cache | |
| run: | | |
| pip cache purge | |
| - name: Test with pytest | |
| timeout-minutes: 120 | |
| if: matrix.python-version != '3.11' | |
| run: | | |
| pytest test/ --ignore=test/autogen --reruns 2 --reruns-delay 10 | |
| - name: Coverage | |
| timeout-minutes: 120 | |
| if: matrix.python-version == '3.11' | |
| run: | | |
| pip install coverage | |
| coverage run -a -m pytest test --ignore=test/autogen --reruns 2 --reruns-delay 10 | |
| coverage xml | |
| - name: Upload coverage to Codecov | |
| if: matrix.python-version == '3.11' | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| file: ./coverage.xml | |
| flags: unittests | |
| - name: Save dependencies | |
| if: github.ref == 'refs/heads/main' | |
| shell: bash | |
| run: | | |
| git config --global user.name 'github-actions[bot]' | |
| git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
| git config advice.addIgnoredFile false | |
| BRANCH=unit-tests-installed-dependencies | |
| git fetch origin | |
| git checkout -B "$BRANCH" "origin/$BRANCH" | |
| pip freeze > installed_all_dependencies_${{ matrix.python-version }}_${{ matrix.os }}.txt | |
| python test/check_dependency.py > installed_first_tier_dependencies_${{ matrix.python-version }}_${{ matrix.os }}.txt | |
| git add installed_*dependencies*.txt | |
| mv coverage.xml ./coverage_${{ matrix.python-version }}_${{ matrix.os }}.xml || true | |
| git add -f ./coverage_${{ matrix.python-version }}_${{ matrix.os }}.xml || true | |
| git commit -m "Update installed dependencies for Python ${{ matrix.python-version }} on ${{ matrix.os }}" || exit 0 | |
| git push origin "$BRANCH" --force |