Rework Python tests to use pytest, enforce coverage #54
Workflow file for this run
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: Tests | ||
on: | ||
pull_request: | ||
branches: [main] | ||
env: | ||
JAVA_VERSION: 11 | ||
PYTHON_VERSION: 3.12 | ||
jobs: | ||
test-scala: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
- name: Set up JDK | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: ${{ env.JAVA_VERSION }} | ||
distribution: 'adopt' | ||
- name: Install SBT | ||
uses: olafurpg/setup-scala@v11 | ||
with: | ||
java-version: ${{ env.JAVA_VERSION }} | ||
- name: Cache SBT dependencies | ||
uses: actions/cache@v2 | ||
with: | ||
path: | | ||
~/.ivy2/cache | ||
~/.sbt | ||
~/.m2 | ||
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} | ||
- name: Run Scala tests | ||
run: | | ||
sbt -Dsbt.log.noformat=true scalafmtCheckAll | ||
sbt -Dsbt.log.noformat=true +test | ||
test-python-package-version: | ||
name: Check Python package version | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Set up Python | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ env.PYTHON_VERSION }} | ||
- name: Check version | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install packaging | ||
python .github/scripts/validate_version_bump.py | ||
test-python: | ||
name: Python ${{ matrix.python-version }} on ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | ||
os: [ubuntu-latest] | ||
include: | ||
- os: macos-latest | ||
python-version: ${{ env.PYTHON_VERSION }} | ||
Check failure on line 68 in .github/workflows/tests.yml
|
||
- os: windows-latest | ||
python-version: ${{ env.PYTHON_VERSION }} | ||
steps: | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Set up JDK # Add Java setup | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: ${{ env.JAVA_VERSION }} | ||
distribution: 'adopt' | ||
- name: Install SBT # Add SBT setup | ||
uses: olafurpg/setup-scala@v11 | ||
with: | ||
java-version: ${{ env.JAVA_VERSION }} | ||
- name: Cache pip dependencies | ||
uses: actions/cache@v2 | ||
with: | ||
path: ~/.cache/pip | ||
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | ||
- name: Install Python dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
cd python | ||
make | ||
pip install --only-binary=numpy,scipy -r requirements.txt | ||
pip install -r test_requirements.txt | ||
- name: Run Python tests | ||
run: | | ||
cd python | ||
pytest --cov=lolopy --cov-report term-missing:skip-covered --cov-fail-under=100 tests |