Add m1 runner #185
This file contains 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 JPY distributions | ||
on: | ||
pull_request: | ||
branches: [ 'master', 'release/v*' ] | ||
push: | ||
branches: [ 'master', 'release/v*' ] | ||
jobs: | ||
jars: | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'temurin' | ||
java-version: '8' | ||
- run: mvn --batch-mode jar:jar javadoc:jar source:jar-no-fork | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: jars | ||
path: target | ||
sdist: | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v4 | ||
# TODO: sdist shouldn't need java | ||
- uses: actions/setup-java@v3 | ||
id: setup-java | ||
with: | ||
distribution: 'temurin' | ||
java-version: '8' | ||
- run: python setup.py sdist | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: sdist | ||
path: dist | ||
bdist-wheel: | ||
runs-on: ${{ matrix.info.machine }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
info: | ||
# - { machine: 'ubuntu-20.04', python: '3.6', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.7', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.8', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.9', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.10', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.11', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'ubuntu-20.04', python: '3.12', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | ||
# - { machine: 'windows-2022', python: '3.6', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.7', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.8', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.9', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.10', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.11', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
# - { machine: 'windows-2022', python: '3.12', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | ||
- { machine: 'macos-12', python: '3.6', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
- { machine: 'macos-12', python: '3.7', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
- { machine: 'macos-12', python: '3.11', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
- { machine: 'macos-12', python: '3.12', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.info.python }} | ||
- uses: actions/setup-java@v4 | ||
id: setup-java | ||
with: | ||
distribution: 'zulu' | ||
java-version: '8' | ||
- run: pip install --upgrade pip | ||
- run: pip install --upgrade setuptools | ||
- run: ${{ matrix.info.cmd }} | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-${{ matrix.info.python }}-${{ matrix.info.machine }}-${{ matrix.info.arch }} | ||
path: dist/*.whl | ||
retention-days: 1 | ||
# https://github.com/actions/setup-python/issues/547 | ||
# https://github.com/actions/python-versions/pull/114 | ||
# https://github.com/actions/python-versions/pull/175 | ||
# https://github.com/pypa/cibuildwheel/blob/v2.16.2/cibuildwheel/macos.py#L247-L260 | ||
bdist-wheel-universal2-hack: | ||
runs-on: ${{ matrix.info.machine }} | ||
env: | ||
_PYTHON_HOST_PLATFORM: macosx-10.9-universal2 | ||
ARCHFLAGS: -arch arm64 -arch x86_64 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
info: | ||
- { machine: 'macos-12', python: '3.8', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
- { machine: 'macos-12', python: '3.9', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
- { machine: 'macos-12', python: '3.10', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.info.python }} | ||
- uses: actions/setup-java@v4 | ||
id: setup-java | ||
with: | ||
distribution: 'zulu' | ||
java-version: '8' | ||
- run: pip install --upgrade pip | ||
- run: pip install --upgrade setuptools | ||
- run: ${{ matrix.info.cmd }} | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-${{ matrix.info.python }}-${{ matrix.info.machine }}-${{ matrix.info.arch }} | ||
path: dist/*.whl | ||
retention-days: 1 | ||
# bdist-wheels-linux-arm64: | ||
# runs-on: 'ubuntu-22.04' | ||
# steps: | ||
# - uses: actions/checkout@v3 | ||
# | ||
# - name: Set up QEMU | ||
# uses: docker/setup-qemu-action@v2 | ||
# | ||
# - name: Set up Docker Buildx | ||
# uses: docker/setup-buildx-action@v2 | ||
# | ||
# - name: Bake | ||
# uses: docker/[email protected] | ||
# with: | ||
# files: .github/docker/docker-bake.hcl | ||
# pull: true | ||
# set: | | ||
# *.platform=linux/arm64/v8 | ||
# *.output=type=local,dest=/tmp/dist | ||
# | ||
# - uses: actions/upload-artifact@v3 | ||
# with: | ||
# name: bdist-wheels-linux-arm64 | ||
# path: /tmp/dist/*.whl | ||
# retention-days: 1 | ||
collect-artifacts: | ||
runs-on: ubuntu-22.04 | ||
# needs: ['sdist', 'bdist-wheel', 'bdist-wheels-linux-arm64'] | ||
needs: [ 'sdist', 'bdist-wheel' ] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
path: download-artifacts | ||
- name: collect-artifacts.sh | ||
run: .github/scripts/collect-artifacts.sh | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: jpy | ||
path: collect-artifacts | ||
release-artifacts: | ||
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }} | ||
runs-on: ubuntu-22.04 | ||
needs: ['collect-artifacts'] | ||
steps: | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: jpy | ||
path: dist | ||
- name: Publish package to PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
user: __token__ | ||
password: ${{ secrets.PYPI_API_TOKEN }} | ||
publish-jar: | ||
if: ${{ startsWith(github.ref, 'refs/heads/release/v') }} | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'temurin' | ||
java-version: '8' | ||
server-id: ossrh | ||
server-username: MAVEN_USERNAME | ||
server-password: MAVEN_PASSWORD | ||
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} | ||
gpg-passphrase: GPG_PASSPHRASE | ||
- name: Publish package | ||
run: mvn --batch-mode deploy -Pjpy-maven-deploy -DskipTests | ||
env: | ||
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} | ||
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} | ||
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | ||
https://github: | ||
com/pypa/cibuildwheel/blob/v2: | ||
16: | ||
2/cibuildwheel/macos: | ||
py#L247-L260: |