Bump actions/setup-python from 4 to 6 (#127) #335
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: Build Wheel | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| create: | |
| tags: | |
| - '*' | |
| jobs: | |
| osx: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
| os: [macos-15, macos-15-intel] | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }} | |
| CXX: clang++ | |
| CC: clang | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Install Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.PYTHON_VERSION }} | |
| - name: Setup xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: '16.4.0' | |
| - name: Build wheel | |
| run: | | |
| set -eux | |
| ARCH=$(if [ $(uname -p) == 'arm' ]; then echo arm64; else echo x86_64; fi) | |
| pip install delocate | |
| export SDKROOT=$(xcrun --sdk macosx --show-sdk-path) | |
| if [ $ARCH == "arm64" ]; then | |
| export _PYTHON_HOST_PLATFORM=macosx-11.0-arm64 | |
| export ARCHFLAGS="-arch arm64" | |
| export LIBSODIUM_CONFIG_COMMAND="./configure --host=arm64-apple-darwin" | |
| export OPENSSL_CONFIG_COMMAND="perl Configure darwin64-arm64-cc" | |
| export DCMAKE_OSX_ARCHITECTURES="arm64" | |
| fi | |
| python -m pip wheel . --verbose -w wheelhouse_dirty | |
| delocate-wheel -w wheelhouse --require-archs=$ARCH -v wheelhouse_dirty/xeus_python-*.whl | |
| - name: List wheels | |
| run: ls wheelhouse | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: wheelhouse-${{ matrix.os }}-${{ matrix.PYTHON_VERSION }} | |
| path: wheelhouse/xeus_python-*.whl | |
| if-no-files-found: error | |
| linux: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
| os: [ubuntu-24.04] | |
| runs-on: ${{ matrix.os }} | |
| container: | |
| image: "quay.io/pypa/manylinux_2_28_x86_64" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Build wheel | |
| run: | | |
| python${{ matrix.PYTHON_VERSION }} -m pip wheel --verbose . -w wheelhouse_dirty | |
| auditwheel repair wheelhouse_dirty/xeus_python-*.whl --plat manylinux_2_28_x86_64 -w wheelhouse | |
| - name: List wheels | |
| run: ls wheelhouse | |
| - name: Get wheel name | |
| run: echo "WHEEL=$(find wheelhouse -type f -iname 'xeus_python-*.whl')" >> $GITHUB_ENV | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: wheelhouse-${{ matrix.os }}-${{ matrix.PYTHON_VERSION }} | |
| path: ${{ env.WHEEL }} | |
| windows: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
| os: [windows-2025] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Install Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.PYTHON_VERSION }} | |
| - name: Setup NASM | |
| uses: ilammy/setup-nasm@v1 | |
| - name: Build wheel | |
| shell: cmd | |
| run: | | |
| call "c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | |
| pip wheel --verbose . -w wheelhouse | |
| - name: List wheels | |
| run: ls wheelhouse | |
| - uses: actions/upload-artifact@v5 | |
| with: | |
| name: wheelhouse-${{ matrix.os }}-${{ matrix.PYTHON_VERSION }} | |
| path: wheelhouse/xeus_python-*.whl | |
| if-no-files-found: error | |
| test-wheels: | |
| runs-on: ${{ matrix.os }}-latest | |
| needs: [linux, osx, windows] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu, macos, windows] | |
| PYTHON_VERSION: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
| include: | |
| - PYTHON_VERSION: "3.9" | |
| os: ubuntu | |
| whl: 'xeus_python-*-cp39*linux*.whl' | |
| - PYTHON_VERSION: "3.10" | |
| os: ubuntu | |
| whl: 'xeus_python-*-cp310*linux*.whl' | |
| - PYTHON_VERSION: "3.11" | |
| os: ubuntu | |
| whl: 'xeus_python-*-cp311*linux*.whl' | |
| - PYTHON_VERSION: "3.12" | |
| os: ubuntu | |
| whl: 'xeus_python-*-cp312*linux*.whl' | |
| - PYTHON_VERSION: "3.13" | |
| os: ubuntu | |
| whl: 'xeus_python-*-cp313*linux*.whl' | |
| - PYTHON_VERSION: "3.9" | |
| os: macos | |
| whl: 'xeus_python-*-cp39*macos*arm64.whl' | |
| - PYTHON_VERSION: "3.10" | |
| os: macos | |
| whl: 'xeus_python-*-cp310*macos*arm64.whl' | |
| - PYTHON_VERSION: "3.11" | |
| os: macos | |
| whl: 'xeus_python-*-cp311*macos*arm64.whl' | |
| - PYTHON_VERSION: "3.12" | |
| os: macos | |
| whl: 'xeus_python-*-cp312*macos*arm64.whl' | |
| - PYTHON_VERSION: "3.13" | |
| os: macos | |
| whl: 'xeus_python-*-cp313*macos*arm64.whl' | |
| - PYTHON_VERSION: "3.9" | |
| os: windows | |
| whl: 'xeus_python-*-cp39*win*.whl' | |
| - PYTHON_VERSION: "3.10" | |
| os: windows | |
| whl: 'xeus_python-*-cp310*win*.whl' | |
| - PYTHON_VERSION: "3.11" | |
| os: windows | |
| whl: 'xeus_python-*-cp311*win*.whl' | |
| - PYTHON_VERSION: "3.12" | |
| os: windows | |
| whl: 'xeus_python-*-cp312*win*.whl' | |
| - PYTHON_VERSION: "3.13" | |
| os: windows | |
| whl: 'xeus_python-*-cp313*win*.whl' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| pattern: wheelhouse-* | |
| merge-multiple: true | |
| path: ./wheelhouse | |
| - name: Install Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.PYTHON_VERSION }} | |
| - name: Install deps | |
| run: python -m pip install pytest nbval | |
| - name: List wheels | |
| run: ls wheelhouse | |
| - name: Install wheel | |
| shell: bash | |
| run: | | |
| WHEEL=$(find . -type f -iname ${{ matrix.whl }}) | |
| python -m pip install -vv ${WHEEL} | |
| working-directory: wheelhouse | |
| - name: Run test | |
| run: pytest test -vv | |
| publish-wheels: | |
| runs-on: ubuntu-latest | |
| needs: [test-wheels] | |
| if: ${{ github.event_name == 'create' }} | |
| strategy: | |
| fail-fast: false | |
| steps: | |
| - uses: actions/download-artifact@v6 | |
| with: | |
| pattern: wheelhouse-* | |
| merge-multiple: true | |
| path: ./wheelhouse | |
| - name: Install Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.13 | |
| - name: Install deps | |
| run: python -m pip install twine | |
| - name: Publish wheels | |
| env: | |
| TWINE_USERNAME: __token__ | |
| TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} | |
| run: twine upload --skip-existing wheelhouse/xeus_python-*.whl |