Fix CI for macos-latest
#279
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 | |
on: [push, pull_request] | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, macos-13, windows-latest] | |
python-version: ['3.7', '3.8', '3.9', '3.10'] | |
exclude: | |
# Exclude the combination of macOS-latest and Python 3.7 as arm64 doesn't support Python 3.7 | |
- os: macos-latest | |
python-version: '3.7' | |
steps: | |
# Check out the repository code | |
- uses: actions/checkout@v4 | |
# Set up the specified Python version | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
# Install dependencies | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e . | |
pip install pytest-cov | |
# Run tests with pytest and generate coverage report | |
- name: Test with pytest | |
run: | | |
pytest --cov=./ --cov-report=xml | |
# Upload the coverage report as an artifact | |
- name: Save coverage report | |
uses: actions/upload-artifact@v2 | |
with: | |
name: coverage-report | |
path: ./coverage.xml | |
# Additional steps only for ubuntu-latest and Python 3.10 | |
# Install development dependencies | |
- name: Install dev dependencies | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' | |
run: | | |
pip install -e .[develop] | |
# Run Pytype for type checking | |
- name: Pytype | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' | |
run: | | |
pytype panda_gym | |
# Check code style with black and isort | |
- name: Check codestyle | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' | |
run: | | |
black -l 127 --check panda_gym test | |
isort -l 127 --profile black --check panda_gym test | |
# Build documentation | |
- name: Make docs | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' | |
run: | | |
make html | |
# Upload coverage to Codecov | |
- name: Upload coverage to Codecov | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' | |
uses: codecov/codecov-action@v4 | |
with: | |
files: ./coverage.xml | |
fail_ci_if_error: true | |
name: codecov-umbrella | |
verbose: true |