# This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: CI on: push: branches: [master] pull_request: branches: [master] jobs: build: env: TERM: xterm-256color FORCE_COLOR: 1 # Skip CI if [ci skip] in the commit message if: "! contains(toJSON(github.event.commits.*.message), '[ci skip]')" runs-on: ubuntu-latest strategy: matrix: python-version: ["3.9", "3.10", "3.11", "3.12"] include: # Default version - gymnasium-version: "1.0.0" # Add a new config to test gym<1.0 - python-version: "3.10" gymnasium-version: "0.29.1" steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip # Use uv for faster downloads pip install uv # cpu version of pytorch # See https://github.com/astral-sh/uv/issues/1497 uv pip install --system torch==2.3.1+cpu --index https://download.pytorch.org/whl/cpu uv pip install --system .[extra,tests,docs] # Use headless version uv pip install --system opencv-python-headless - name: Install specific version of gym run: | uv pip install --system gymnasium==${{ matrix.gymnasium-version }} uv pip install --system "numpy<2" # Only run for python 3.10, downgrade gym to 0.29.1, numpy<2 if: matrix.gymnasium-version != '1.0.0' - name: Lint with ruff run: | make lint - name: Build the doc run: | make doc - name: Check codestyle run: | make check-codestyle - name: Type check run: | make type - name: Test with pytest run: | make pytest