Call step preprocessor once #172
This file contains hidden or 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-jax | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| paths: | |
| - 'skrl/**/jax/**' | |
| - 'skrl/__init__.py' | |
| - 'skrl/utils/__init__.py' | |
| - 'tests/**/jax/**' | |
| - 'tests/test_jax_config.py' | |
| - 'tests/strategies.py' | |
| - 'tests/utilities.py' | |
| pull_request: | |
| types: [opened, synchronize, reopened, ready_for_review] | |
| branches: [ main, develop ] | |
| paths: | |
| - 'skrl/**/jax/**' | |
| - 'skrl/__init__.py' | |
| - 'skrl/utils/__init__.py' | |
| - 'tests/**/jax/**' | |
| - 'tests/test_jax_config.py' | |
| - 'tests/strategies.py' | |
| - 'tests/utilities.py' | |
| schedule: | |
| - cron: "9 9 * * 6" # every Saturday at 9:09 UTC | |
| workflow_dispatch: | |
| defaults: | |
| run: | |
| shell: bash | |
| jobs: | |
| ############################################################ | |
| # Minimum requirements | |
| ############################################################ | |
| jax-minimum-components: | |
| name: Minimum requirements (components) | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft == false && github.event_name != 'workflow_dispatch' | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet "numpy<2.0" # 1.19.3 | |
| python -m pip install --quiet jax==0.4.31 jaxlib==0.4.31 flax==0.9.0 optax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (agents) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-minimum-components-agents-pytest.html \ | |
| --cov=skrl/agents/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-minimum-components-agents-coverage.html \ | |
| tests/agents/jax | |
| - name: Run tests (multi-agents) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-minimum-components-multi-agents-pytest.html \ | |
| --cov=skrl/multi_agents/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-minimum-components-multi-agents-coverage.html \ | |
| tests/multi_agents/jax | |
| - name: Run tests (trainers) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-minimum-components-trainers-pytest.html \ | |
| --cov=skrl/trainers/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-minimum-components-trainers-coverage.html \ | |
| tests/trainers/jax | |
| # report | |
| - name: Save reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jax-minimum-components.html | |
| path: jax-minimum-components-*.html | |
| retention-days: 3 | |
| jax-minimum-envs: | |
| name: Minimum requirements (envs) | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft == false && github.event_name != 'workflow_dispatch' | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet "numpy<2.0" # 1.19.3 | |
| python -m pip install --quiet jax==0.4.31 jaxlib==0.4.31 flax==0.9.0 optax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (Gymnasium) | |
| run: | | |
| python -m pip install --quiet gymnasium==0.26.1 pygame | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_gymnasium_envs.py | |
| - name: Run tests (Gym) | |
| run: | | |
| python -m pip install --quiet gym==0.23.0 | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_gym_envs.py | |
| - name: Run tests (PettingZoo) | |
| run: | | |
| python -m pip install --quiet pettingzoo==1.22.2 pymunk | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_pettingzoo_envs.py | |
| - name: Run tests (Brax) | |
| run: | | |
| python -m pip install --quiet brax==0.12.0 mujoco==3.2.6 | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_brax_envs.py | |
| - name: Run tests (Isaac Lab) | |
| run: | | |
| python -m pip install --quiet torch==1.11.0 | |
| pytest tests/envs/wrappers/jax/test_isaaclab_envs.py | |
| jax-minimum-utils: | |
| name: Minimum requirements (utils) | |
| runs-on: ubuntu-22.04 | |
| if: github.event.pull_request.draft == false && github.event_name != 'workflow_dispatch' | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet "numpy<2.0" # 1.19.3 | |
| python -m pip install --quiet jax==0.4.31 jaxlib==0.4.31 flax==0.9.0 optax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (model_instantiators) | |
| run: | | |
| python -m pip install --quiet gym==0.23.0 | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-minimum-utils-model_instantiators-pytest.html \ | |
| --cov=skrl/utils/model_instantiators/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-minimum-utils-model_instantiators-coverage.html \ | |
| tests/utils/model_instantiators/jax | |
| - name: Run tests (spaces) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-minimum-utils-spaces-pytest.html \ | |
| --cov=skrl/utils/spaces/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-minimum-utils-spaces-coverage.html \ | |
| tests/utils/spaces/jax | |
| # report | |
| - name: Save reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jax-minimum-utils.html | |
| path: jax-minimum-utils-*.html | |
| retention-days: 3 | |
| ############################################################ | |
| # Latest requirements | |
| ############################################################ | |
| jax-latest-components: | |
| name: Latest requirements (components) | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.draft == false | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.13 | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet jax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (agents) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-latest-components-agents-pytest.html \ | |
| --cov=skrl/agents/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-latest-components-agents-coverage.html \ | |
| tests/agents/jax | |
| - name: Run tests (multi-agents) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-latest-components-multi-agents-pytest.html \ | |
| --cov=skrl/multi_agents/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-latest-components-multi-agents-coverage.html \ | |
| tests/multi_agents/jax | |
| - name: Run tests (trainers) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-latest-components-trainers-pytest.html \ | |
| --cov=skrl/trainers/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-latest-components-trainers-coverage.html \ | |
| tests/trainers/jax | |
| # report | |
| - name: Save reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jax-latest-components.html | |
| path: jax-latest-components-*.html | |
| retention-days: 3 | |
| jax-latest-envs: | |
| name: Latest requirements (envs) | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.draft == false | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.13 | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet jax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (Gymnasium) | |
| run: | | |
| python -m pip install --quiet gymnasium | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_gymnasium_envs.py | |
| - name: Run tests (Gym) | |
| run: | | |
| python -m pip install --quiet gym | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_gym_envs.py | |
| - name: Run tests (PettingZoo) | |
| run: | | |
| python -m pip install --quiet pettingzoo pygame pymunk | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_pettingzoo_envs.py | |
| - name: Run tests (Brax) | |
| run: | | |
| python -m pip install --quiet brax | |
| python -m pip list | |
| pytest tests/envs/wrappers/jax/test_brax_envs.py | |
| - name: Run tests (Isaac Lab) | |
| run: | | |
| python -m pip install --quiet torch | |
| pytest tests/envs/wrappers/jax/test_isaaclab_envs.py | |
| jax-latest-utils: | |
| name: Latest requirements (utils) | |
| runs-on: ubuntu-latest | |
| if: github.event.pull_request.draft == false | |
| steps: | |
| # setup | |
| - uses: actions/checkout@v4 | |
| - name: Delete Python cache | |
| if: env.DELETE_HOSTED_TOOL_PYTHON_CACHE == '1' | |
| run: | | |
| rm -rf /opt/hostedtoolcache/Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.13 | |
| check-latest: true | |
| # install dependencies | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --quiet --upgrade pip | |
| python -m pip install --quiet jax | |
| python -m pip install --quiet -e .[jax] | |
| python -m pip install --quiet -e .[tests] | |
| python -m pip list | |
| # run tests | |
| - name: Run tests (model_instantiators) | |
| run: | | |
| python -m pip install --quiet gym | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-latest-utils-model_instantiators-pytest.html \ | |
| --cov=skrl/utils/model_instantiators/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-latest-utils-model_instantiators-coverage.html \ | |
| tests/utils/model_instantiators/jax | |
| - name: Run tests (spaces) | |
| run: | | |
| pytest \ | |
| --self-contained-html \ | |
| --html=jax-latest-utils-spaces-pytest.html \ | |
| --cov=skrl/utils/spaces/jax \ | |
| --cov-report term:skip-covered \ | |
| --cov-report html:jax-latest-utils-spaces-coverage.html \ | |
| tests/utils/spaces/jax | |
| # report | |
| - name: Save reports | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: jax-latest-utils.html | |
| path: jax-latest-utils-*.html | |
| retention-days: 3 |