chore: bump version to 9.11.2 (#4909) #7265
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
| name: Python | |
| # This file builds and tests Python binary wheels across major platforms. The | |
| # wheels that are produced are used for PyPi releases. The test step uses a | |
| # fresh job and installs the wheel the ensure it works in isolation. The is also | |
| # a job which produces the source distribution and ensures that can be built to. | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - 'releases/**' | |
| - rlos2023/test | |
| pull_request: | |
| branches: | |
| - '*' | |
| - rlos2023/test | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Linux x64 builds using cibuildwheel (Python 3.10-3.14) | |
| cibuildwheel-build-linux: | |
| name: cibuildwheel.${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@v3.3.0 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-${{ matrix.os }} | |
| path: ./wheelhouse/*.whl | |
| retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }} | |
| # Linux ARM64 builds using cibuildwheel (Python 3.10-3.14) | |
| cibuildwheel-build-linux-aarch64: | |
| name: cibuildwheel.ubuntu-24.04-arm | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@v3.3.0 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-ubuntu-24.04-arm | |
| path: ./wheelhouse/*.whl | |
| retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }} | |
| # macOS builds using cibuildwheel (Python 3.10-3.14) | |
| cibuildwheel-build-macos: | |
| name: cibuildwheel.${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [macos-14, macos-15-intel] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@v3.3.0 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-${{ matrix.os }} | |
| path: ./wheelhouse/*.whl | |
| retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }} | |
| # Windows builds using cibuildwheel (Python 3.10-3.14) | |
| cibuildwheel-build-windows: | |
| name: cibuildwheel.windows-2022 | |
| runs-on: windows-2022 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| fetch-depth: 0 | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - name: Setup MSVC Developer Command Prompt | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Install sccache | |
| run: choco install sccache -y | |
| - name: Build wheels | |
| uses: pypa/cibuildwheel@v3.3.0 | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-windows-2022 | |
| path: ./wheelhouse/*.whl | |
| retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }} | |
| linux-python-sdist-bundle: | |
| name: ubuntu-latest.amd64.py3.10.sdist-bundle | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| architecture: 'x64' | |
| - name: Install dependencies | |
| shell: bash | |
| run: python setup.py sdist | |
| - name: Upload built wheel | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: python_source_distribution | |
| path: dist/*.tar.gz | |
| if-no-files-found: error | |
| retention-days: ${{ github.event_name == 'pull_request' && 7 || 400 }} | |
| linux-python-sdist-build-test: | |
| name: ubuntu-latest.amd64.py3.10.sdist-build-test | |
| needs: linux-python-sdist-bundle | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/setup-python@v5 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: python_source_distribution | |
| path: dist/ | |
| - name: Install dependencies | |
| shell: bash | |
| run: | | |
| sudo apt update | |
| sudo apt install libboost-test-dev zlib1g-dev cmake ninja-build g++ | |
| pip install pybind11 | |
| - name: Install source dist | |
| shell: bash | |
| run: pip install dist/*.tar.gz | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: false | |
| - name: Init submodules with retry | |
| shell: bash | |
| run: | | |
| git config --global --add safe.directory "$(pwd)" | |
| for attempt in 1 2 3 4 5; do | |
| if git submodule update --init --recursive; then | |
| echo "Submodule init succeeded on attempt $attempt" | |
| exit 0 | |
| fi | |
| echo "Attempt $attempt failed, retrying in 15s..." | |
| sleep 15 | |
| done | |
| echo "Submodule init failed after 5 attempts" | |
| exit 1 | |
| - name: Install dependencies | |
| shell: bash | |
| run: | | |
| pip install -r requirements.txt | |
| pip install pytest vw-executor | |
| - name: Run unit tests | |
| shell: bash | |
| run: | | |
| python -m pytest ./python/tests/ --ignore=python/tests/e2e_v2 |