Skip to content

Commit

Permalink
Add MacOS support. Add mujoco dependency
Browse files Browse the repository at this point in the history
Signed-off-by: guillemdb <[email protected]>
  • Loading branch information
Guillemdb committed Sep 2, 2024
1 parent 0f434c2 commit f2395b8
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 13 deletions.
40 changes: 29 additions & 11 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,12 @@ jobs:
pytest:
name: Run Pytest
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'Bump version')"
strategy:
matrix:
python-version: ['3.10']
python-version: [ '3.10' ]
os: [ 'ubuntu-latest', 'macos-latest' ]
runs-on: ${{ matrix.os }}
steps:
- name: actions/checkout
uses: actions/checkout@v3
Expand All @@ -64,29 +65,46 @@ jobs:
uses: eifinger/setup-rye@v4
with:
enable-cache: true
cache-prefix: ubuntu-latest-rye-test-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
cache-prefix: ${{ matrix.os }}-latest-rye-test-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
- name: actions/cache
uses: actions/cache@v3
with:
path: ${{ env.LOCAL_CACHE }}
key: ubuntu-latest-system-test-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
restore-keys: ubuntu-latest-system-test
- name: Install test and package dependencies
key: ${{ matrix.os }}-latest-system-test-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
restore-keys: ${{ matrix.os }}-latest-system-test-${{ matrix.python-version }}

- name: Install Ubuntu test and package dependencies
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
set -x
sudo apt-get install -y xvfb
rye pin --relaxed cpython@${{ matrix.python-version }}
rye sync --all-features
ROM_PASSWORD=${{ secrets.ROM_PASSWORD }} rye run import-roms
- name: Install MacOS test and package dependencies
if: ${{ matrix.os == 'macos-latest' }}
run: |
set -x
sudo apt-get install -y xvfb -y
sudo MUJOCO_PATH=/home/runner/.mujoco/ make install-envs
brew install --cask xquartz
# https://docs.github.com/en/actions/learn-github-actions/workflow-commands-for-github-actions#adding-a-system-path
echo "/opt/X11/bin" >> $GITHUB_PATH
# https://github.com/ponty/PyVirtualDisplay/issues/42
mkdir /tmp/.X11-unix
sudo chmod 1777 /tmp/.X11-unix
sudo chown root /tmp/.X11-unix
rye pin --relaxed cpython@${{ matrix.python-version }}
rye sync --all-features
ROM_PASSWORD=${{ secrets.ROM_PASSWORD }} make import-roms
ROM_PASSWORD=${{ secrets.ROM_PASSWORD }} rye run import-roms
- name: Test with pytest
run: |
set -x
xvfb-run -s "-screen 0 1400x900x24" rye run codecov
rye run codecov
- name: Upload coverage report
if: ${{ matrix.python-version=='3.10' }}
# if: ${{ matrix.python-version == '3.10' && matrix.os == 'ubuntu-latest' }}
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false # optional (default = false)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ nes = [
]
classic-control = ["gymnasium[classic_control]>=0.29.1, == 0.*", "pygame>=2.6.0"]
ray = ["ray>=2.35.0"]
dm_control = ["dm-control>=1.0.22", "gym @ git+https://github.com/FragileTech/gym.git"]
dm_control = ["mujoco>=3.2.2", "dm-control>=1.0.22", "gym @ git+https://github.com/FragileTech/gym.git"]
retro = ["stable_retro"]
jupyter = ["jupyterlab>=3.2.0"]
box_2d = ["box2d-py==2.3.5"]
Expand Down
1 change: 1 addition & 0 deletions requirements-dev.lock
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ msgpack==1.0.8
# via ray
mujoco==3.2.2
# via dm-control
# via plangym
myst-nb==1.1.1
# via plangym
myst-parser==4.0.0
Expand Down
1 change: 1 addition & 0 deletions requirements.lock
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ msgpack==1.0.8
# via ray
mujoco==3.2.2
# via dm-control
# via plangym
myst-nb==1.1.1
# via plangym
myst-parser==4.0.0
Expand Down
3 changes: 2 additions & 1 deletion src/plangym/scripts/import_retro_roms.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import zipfile
import logging
import flogging
from pathlib import Path

import retro.data

Expand Down Expand Up @@ -40,7 +41,7 @@ def main():
".pce": "PCEngine",
}
EMU_EXTENSIONS.update(emu_extensions)
paths = sys.argv[1:] or [os.getcwd()]
paths = sys.argv[1:] or [Path.cwd()]
logger.info(f"Importing ROMs from: {paths}")
logger.info("Fetching known hashes")
known_hashes = retro.data.get_known_hashes()
Expand Down

0 comments on commit f2395b8

Please sign in to comment.