Support novelty search with local competition in ProximityArchive #2486
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 | |
defaults: | |
run: | |
# The default shell must be set like this so that bash will source the | |
# profile, which contains settings initialized by Conda: | |
# https://github.com/marketplace/actions/setup-miniconda#important | |
shell: bash -el {0} | |
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: conda-incubator/setup-miniconda@v3 | |
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.12"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- 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 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.8" | |
- 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 visualize deps | |
run: pip install -r pinned_reqs/extras_visualize.txt | |
- name: Test visualize extra | |
run: pytest tests/visualize | |
- name: Install QDax | |
# Brax 0.9.4 fails with Python 3.8 due to mujoco-mjx | |
run: pip install qdax brax==0.9.3 | |
- name: Test visualize extra for QDax | |
run: pytest tests/visualize_qdax | |
- name: Install cma dep | |
run: pip install .[pycma] | |
- name: Test cma extra | |
run: pytest tests/emitters_pycma | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.8" | |
- name: Install deps | |
run: pip install .[all,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 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.8" | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Run benchmarks | |
run: pytest -c pytest_benchmark.ini tests | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
# 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 | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: 3.8 | |
- name: Install deps | |
run: pip install .[visualize] | |
- name: Test Examples | |
run: bash tests/examples.sh | |
tutorials_list: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: set-matrix | |
run: | | |
echo "$(bash tests/tutorials_list.sh)" >> $GITHUB_OUTPUT | |
tutorials: | |
runs-on: ubuntu-latest | |
needs: tutorials_list | |
strategy: | |
matrix: ${{ fromJSON(needs.tutorials_list.outputs.matrix) }} | |
steps: | |
# 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 | |
# We use Python 3.10 instead of 3.8 here since Google Colab uses 3.10. | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.10" | |
- name: Install deps | |
run: pip install jupyter nbconvert | |
- name: Replace pyribs installation with local installation | |
run: | | |
sed -ri 's/(\%pip install .*)ribs(.*)/\1.\2/g' ${{ matrix.tutorial }} | |
- name: Test Tutorials | |
run: bash tests/tutorials.sh ${{ matrix.tutorial }} | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.8" | |
- 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 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: "3.8" | |
- 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 |