Skip to content

Commit

Permalink
Add free-threaded build in GH action
Browse files Browse the repository at this point in the history
  • Loading branch information
jmao-denver committed Oct 23, 2024
1 parent e93774a commit e65f8ff
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 1 deletion.
1 change: 0 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ jobs:
distribution: 'temurin'
java-version: '8'

- run: pip install setuptools
- run: ${{ matrix.info.cmd }}

- uses: actions/upload-artifact@v4
Expand Down
105 changes: 105 additions & 0 deletions .github/workflows/build_ft_wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Build Free-Threaded JPY distributions

on:
pull_request:
branches: [ 'master', 'release/v*' ]
push:
branches: [ 'master', 'release/v*' ]

jobs:
bdist-wheels:
runs-on: ${{ matrix.info.machine }}
strategy:
fail-fast: false
matrix:
info:
- { machine: 'ubuntu-20.04', python: '3.13t', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' }
- { machine: 'macos-13', python: '3.13t', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' }
- { machine: 'macos-latest', python: '3.13t', arch: 'arm64', cmd: '.github/env/macOS/bdist-wheel.sh' }

steps:
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v3
- run: |
uv python install ${{ matrix.info.python }}
uv venv --python ${{ matrix.info.python }}
source .venv/bin/activate
uv pip install pip
echo $JAVA_HOME
echo PATH=$PATH >> $GITHUB_ENV
- run: ${{ matrix.info.cmd }}

- uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.info.python }}-${{ matrix.info.machine }}-${{ matrix.info.arch }}
path: dist/*.whl
retention-days: 1

bdist-wheels-windows:
runs-on: ${{ matrix.info.machine }}
strategy:
fail-fast: false
matrix:
info:
- { machine: 'windows-2022', python: '3.13t', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' }

steps:
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v3
- run: |
uv python install ${{ matrix.info.python }}
uv venv --python ${{ matrix.info.python }}
.venv\Scripts\Activate.ps1
uv pip install pip
echo PATH=%PATH% >> $GITHUB_ENV
${{ matrix.info.cmd }}
- uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.info.python }}-${{ matrix.info.machine }}-${{ matrix.info.arch }}
path: dist/*.whl
retention-days: 1

bdist-wheels-linux-aarch64:
runs-on: ${{ matrix.info.machine }}
strategy:
fail-fast: false
matrix:
info:
- { machine: 'ubuntu-20.04', python: '3.13t', arch: 'aarch64', cmd: '.github/env/Linux/bdist-wheel.sh' }

steps:
- uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_FREE_THREADED_SUPPORT: true
CIBW_ARCHS_LINUX: "aarch64"
CIBW_BUILD: "cp313t-*"
CIBW_SKIP: "cp313t-musllinux_aarch64"
CIBW_BEFORE_ALL_LINUX: >
yum install -y java-11-openjdk-devel &&
yum install -y wget &&
wget https://www.apache.org/dist/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz -P /tmp &&
tar xf /tmp/apache-maven-3.8.8-bin.tar.gz -C /opt &&
ln -s /opt/apache-maven-3.8.8/bin/mvn /usr/bin/mvn
CIBW_ENVIRONMENT: JAVA_HOME=/etc/alternatives/jre_11_openjdk
CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --exclude libjvm.so -w {dest_dir} {wheel}'

with:
package-dir: .
output-dir: dist

- uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.info.python }}-${{ matrix.info.machine }}-${{ matrix.info.arch }}
path: dist/*.whl
retention-days: 1

27 changes: 27 additions & 0 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,30 @@ jobs:

- name: Run Test
run: python setup.py test

test-free-threaded:
runs-on: ubuntu-22.04
strategy:
matrix:
java: ['8', '11', '17', '21', '23']
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}

- uses: astral-sh/setup-uv@v3
- run: |
uv python install 3.13t
uv venv --python 3.13t
source .venv/bin/activate
uv pip install pip
echo PATH=$PATH >> $GITHUB_ENV
- run: pip install "setuptools < 72"

- name: Run Free-threaded Test
run: python setup.py test

0 comments on commit e65f8ff

Please sign in to comment.