Add jpy.byte_buffer() function (#112) #164
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', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.7', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.8', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.9', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.10', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.11', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'ubuntu-20.04', python: '3.12', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/Linux/bdist-wheel.sh' } | |
- { machine: 'windows-2022', python: '3.6', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.7', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.8', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.9', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.10', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.11', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'windows-2022', python: '3.12', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.\.github\env\Windows\bdist-wheel.ps1' } | |
- { machine: 'macos-11', python: '3.6', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.7', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.8', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.9', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.10', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.11', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
- { machine: 'macos-11', python: '3.12', pythonArchitecture: 'x64', arch: 'amd64', cmd: '.github/env/macOS/bdist-wheel.sh' } | |
# Add M1 powered runners when available | |
# https://github.com/jpy-consortium/jpy/issues/110 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.info.python }} | |
architecture: ${{ matrix.info.pythonArchitecture }} | |
- uses: actions/setup-java@v3 | |
id: setup-java | |
with: | |
distribution: 'temurin' | |
java-version: '8' | |
- 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'] | |
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 }} |