Fix lunar lander dependency issues #2018
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: | |
push: | |
branches: | |
- master | |
tags: | |
- v[0-9].* | |
pull_request: | |
branches: | |
- master | |
jobs: | |
pre-commit: | |
runs-on: ubuntu-latest | |
env: | |
# Skipped for now since we just added pre-commit and not all of our code | |
# perfectly passes pylint. | |
SKIP: pylint | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
- name: Install all deps and pylint (to be available to pre-commit) | |
run: pip install .[all] pylint | |
- uses: pre-commit/[email protected] | |
# The visualize extra is only tested with pinned reqs because different | |
# Matplotlib versions have slightly different outputs. | |
test: | |
strategy: | |
max-parallel: 12 # All in parallel. | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ["3.8", "3.9", "3.10", "3.11"] | |
exclude: | |
# To cut down on runtime since Mac seems to take the longest. | |
- os: macos-latest | |
python-version: "3.9" | |
- os: macos-latest | |
python-version: "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install core deps | |
run: pip install .[dev] | |
- name: Test core | |
run: > | |
pytest tests/archives tests/emitters tests/schedulers | |
pin: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install core deps | |
run: pip install -r pinned_reqs/install.txt .[dev] | |
- name: Test core | |
run: > | |
pytest tests/archives tests/emitters tests/schedulers | |
- name: Install extras deps | |
run: pip install -r pinned_reqs/extras_visualize.txt | |
- name: Test visualize extra | |
run: pytest tests/visualize | |
- name: Install QDax | |
run: pip install qdax | |
- name: Test visualize extra for QDax | |
run: pytest tests/visualize_qdax | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Test coverage | |
env: | |
NUMBA_DISABLE_JIT: 1 | |
# Exclude `visualize_qdax` since we don't install QDax here. We also | |
# exclude `tests` since we don't want the base directory here. | |
run: | |
pytest $(find tests -maxdepth 1 -type d -not -name 'tests' -not -name | |
'visualize_qdax') | |
benchmarks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Run benchmarks | |
run: pytest -c pytest_benchmark.ini tests | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# SWIG should not be installed so that we can test that lunar lander is | |
# installing SWIG properly. See https://github.com/icaros-usc/pyribs/pull/366 | |
# | |
# Note: Currently, installing swig and then installing gymnasium[box2d] | |
# does not seem to work properly in the examples CI. It is unclear why | |
# this happens. However, the tutorials seem to work fine. | |
# - name: Remove swig | |
# run: sudo apt-get remove swig | |
# - name: Remove swig | |
# run: sudo apt-get remove swig | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize] | |
- name: Test Examples | |
run: bash tests/examples.sh | |
tutorials: | |
runs-on: ubuntu-latest | |
steps: | |
# We use Python 3.10 instead of 3.8 here since Google Colab uses 3.10. | |
- uses: actions/checkout@v4 | |
# SWIG should not be installed so that we can test that lunar lander is | |
# installing SWIG properly. See https://github.com/icaros-usc/pyribs/pull/366 | |
- name: Remove swig | |
run: sudo apt-get remove swig | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize] jupyter nbconvert | |
- name: Test Tutorials | |
run: bash tests/tutorials.sh | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Build docs | |
run: make docs | |
deploy: | |
runs-on: ubuntu-latest | |
needs: [pre-commit, test, pin, coverage, benchmarks, examples, tutorials] | |
if: startsWith(github.ref, 'refs/tags') | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install dependencies | |
run: | | |
pip install -e . | |
pip install -e .[dev] | |
- name: Publish | |
env: | |
TWINE_USERNAME: "__token__" | |
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
run: | | |
make release |