mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Merge pull request #8200 from hugovk/ci-free-threading
Test 3.13 free-threaded build on CI
This commit is contained in:
		
						commit
						613fced92c
					
				| 
						 | 
					@ -37,12 +37,18 @@ python3 -m pip install -U pytest-timeout
 | 
				
			||||||
python3 -m pip install pyroma
 | 
					python3 -m pip install pyroma
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ $(uname) != CYGWIN* ]]; then
 | 
					if [[ $(uname) != CYGWIN* ]]; then
 | 
				
			||||||
 | 
					    # TODO Update condition when NumPy supports free-threading
 | 
				
			||||||
 | 
					    if [[ "$PYTHON_GIL" == "0" ]]; then
 | 
				
			||||||
 | 
					        python3 -m pip install numpy --index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
        python3 -m pip install numpy
 | 
					        python3 -m pip install numpy
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # PyQt6 doesn't support PyPy3
 | 
					    # PyQt6 doesn't support PyPy3
 | 
				
			||||||
    if [[ $GHA_PYTHON_VERSION == 3.* ]]; then
 | 
					    if [[ $GHA_PYTHON_VERSION == 3.* ]]; then
 | 
				
			||||||
        sudo apt-get -qq install libegl1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxkbcommon-x11-0
 | 
					        sudo apt-get -qq install libegl1 libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxkbcommon-x11-0
 | 
				
			||||||
        python3 -m pip install pyqt6
 | 
					        # TODO Update condition when pyqt6 supports free-threading
 | 
				
			||||||
 | 
					        if ! [[ "$PYTHON_GIL" == "0" ]]; then python3 -m pip install pyqt6 ; fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Pyroma uses non-isolated build and fails with old setuptools
 | 
					    # Pyroma uses non-isolated build and fails with old setuptools
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -50,26 +50,24 @@ jobs:
 | 
				
			||||||
          "3.9",
 | 
					          "3.9",
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
        include:
 | 
					        include:
 | 
				
			||||||
        - python-version: "3.11"
 | 
					        - { python-version: "3.11", PYTHONOPTIMIZE: 1, REVERSE: "--reverse" }
 | 
				
			||||||
          PYTHONOPTIMIZE: 1
 | 
					        - { python-version: "3.10", PYTHONOPTIMIZE: 2 }
 | 
				
			||||||
          REVERSE: "--reverse"
 | 
					        # Free-threaded
 | 
				
			||||||
        - python-version: "3.10"
 | 
					        - { os: "ubuntu-latest", python-version: "3.13-dev", disable-gil: true }
 | 
				
			||||||
          PYTHONOPTIMIZE: 2
 | 
					 | 
				
			||||||
        # M1 only available for 3.10+
 | 
					        # M1 only available for 3.10+
 | 
				
			||||||
        - os: "macos-13"
 | 
					        - { os: "macos-13", python-version: "3.9" }
 | 
				
			||||||
          python-version: "3.9"
 | 
					 | 
				
			||||||
        exclude:
 | 
					        exclude:
 | 
				
			||||||
        - os: "macos-14"
 | 
					        - { os: "macos-14", python-version: "3.9" }
 | 
				
			||||||
          python-version: "3.9"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    runs-on: ${{ matrix.os }}
 | 
					    runs-on: ${{ matrix.os }}
 | 
				
			||||||
    name: ${{ matrix.os }} Python ${{ matrix.python-version }}
 | 
					    name: ${{ matrix.os }} Python ${{ matrix.python-version }} ${{ matrix.disable-gil && 'free-threaded' || '' }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v4
 | 
					    - uses: actions/checkout@v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Set up Python ${{ matrix.python-version }}
 | 
					    - name: Set up Python ${{ matrix.python-version }}
 | 
				
			||||||
      uses: actions/setup-python@v5
 | 
					      uses: actions/setup-python@v5
 | 
				
			||||||
 | 
					      if: "${{ !matrix.disable-gil }}"
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        python-version: ${{ matrix.python-version }}
 | 
					        python-version: ${{ matrix.python-version }}
 | 
				
			||||||
        allow-prereleases: true
 | 
					        allow-prereleases: true
 | 
				
			||||||
| 
						 | 
					@ -78,6 +76,18 @@ jobs:
 | 
				
			||||||
          ".ci/*.sh"
 | 
					          ".ci/*.sh"
 | 
				
			||||||
          "pyproject.toml"
 | 
					          "pyproject.toml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set up Python ${{ matrix.python-version }} (free-threaded)
 | 
				
			||||||
 | 
					      uses: deadsnakes/action@v3.1.0
 | 
				
			||||||
 | 
					      if: "${{ matrix.disable-gil }}"
 | 
				
			||||||
 | 
					      with:
 | 
				
			||||||
 | 
					        python-version: ${{ matrix.python-version }}
 | 
				
			||||||
 | 
					        nogil: ${{ matrix.disable-gil }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Set PYTHON_GIL
 | 
				
			||||||
 | 
					      if: "${{ matrix.disable-gil }}"
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        echo "PYTHON_GIL=0" >> $GITHUB_ENV
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Build system information
 | 
					    - name: Build system information
 | 
				
			||||||
      run: python3 .github/workflows/system-info.py
 | 
					      run: python3 .github/workflows/system-info.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user