mirror of https://github.com/kivy/pyjnius.git
109 lines
2.9 KiB
YAML
109 lines
2.9 KiB
YAML
on: [push, pull_request]
|
|
name: Continuous Integration
|
|
jobs:
|
|
Tests:
|
|
name: base
|
|
continue-on-error: true
|
|
strategy:
|
|
matrix:
|
|
python:
|
|
- '3.7'
|
|
- '3.8'
|
|
- '3.9'
|
|
- '3.10'
|
|
- '3.11'
|
|
- '3.12'
|
|
- 'pypy-3.7'
|
|
- 'pypy-3.8'
|
|
- 'pypy-3.9'
|
|
java:
|
|
- '8'
|
|
- '11'
|
|
- '20'
|
|
os:
|
|
- 'ubuntu-latest'
|
|
- 'windows-latest'
|
|
- 'macos-latest'
|
|
architecture:
|
|
- 'x64'
|
|
- 'x86'
|
|
cython:
|
|
- '<3'
|
|
- '>=3'
|
|
|
|
# exclude problematic combinations
|
|
exclude:
|
|
- os: ubuntu-latest
|
|
architecture: 'x86'
|
|
- os: macos-latest
|
|
architecture: 'x86'
|
|
- os: windows-latest
|
|
architecture: 'x86'
|
|
python: 'pypy-3.7'
|
|
- os: windows-latest
|
|
architecture: 'x86'
|
|
python: 'pypy-3.8'
|
|
- os: windows-latest
|
|
architecture: 'x86'
|
|
python: 'pypy-3.9'
|
|
- os: windows-latest
|
|
architecture: 'x86'
|
|
java: '20'
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@master
|
|
|
|
- name: Setup python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
architecture: ${{ matrix.architecture }}
|
|
|
|
- name: Setup java
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
java-version: ${{ matrix.java }}
|
|
distribution: 'temurin'
|
|
architecture: ${{ matrix.architecture }}
|
|
|
|
- name: (macOS) Setup test dependencies
|
|
if: matrix.os == 'macos-latest'
|
|
run: brew install ant
|
|
|
|
- name: Build test classes via ant
|
|
run: ant all
|
|
|
|
- name: (Windows) Force Cython version
|
|
# Windows sed doesnt accept .bak filename extensions
|
|
if: matrix.os == 'windows-latest'
|
|
run: sed -i 's/"Cython"/"Cython${{matrix.cython}}"/' pyproject.toml
|
|
|
|
- name: (Linux, macOS) Force Cython version
|
|
# macOS sed requires .bak filename extensions
|
|
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest')
|
|
run: sed -i.bak 's/"Cython"/"Cython${{matrix.cython}}"/' pyproject.toml
|
|
|
|
- name: Install pyjnius with [dev, ci] extras
|
|
run: |
|
|
pip install --timeout=120 .[dev,ci]
|
|
|
|
- name: (Windows) Test pyjnius via pytest
|
|
if: matrix.os == 'windows-latest'
|
|
run: |
|
|
$env:PATH +=";$env:JAVA_HOME\jre\bin\server\;$env:JAVA_HOME\jre\bin\client\;$env:JAVA_HOME\bin\server\"
|
|
$env:CLASSPATH ="../build/test-classes;../build/classes"
|
|
cd tests
|
|
pytest -v
|
|
|
|
- name: (Linux, macOS) Test pyjnius via pytest
|
|
if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest')
|
|
run: |
|
|
cd tests
|
|
CLASSPATH=../build/test-classes:../build/classes python -m pytest -v
|
|
|
|
# - name: coveralls
|
|
# run: python -m coveralls
|
|
# env:
|
|
# COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|