mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-01 06:07:08 +00:00
test docker images based on python images (#1474)
* base test docker image on python images * fix py3 build * fixes for python-based dockerfile * re-enable py27 build * remove requirements_dev.txt and unittest.cfg (cleaning up build pipeline)
This commit is contained in:
11
.travis.yml
11
.travis.yml
@@ -1,15 +1,16 @@
|
||||
sudo: required
|
||||
language: python
|
||||
services:
|
||||
- docker
|
||||
env:
|
||||
# - UBUNTU_VER=14.04 - problems with atari-py
|
||||
- UBUNTU_VER=16.04
|
||||
- UBUNTU_VER=18.04
|
||||
- PY_VER=2.7
|
||||
- PY_VER=3.5
|
||||
- PY_VER=3.6
|
||||
- PY_VER=3.7
|
||||
|
||||
install: "" # so travis doesn't do pip install requirements.txt
|
||||
script:
|
||||
- docker build -f test.dockerfile.${UBUNTU_VER} -t gym-test --build-arg MUJOCO_KEY=$MUJOCO_KEY .
|
||||
- docker build -f py.Dockerfile --build-arg MUJOCO_KEY=$MUJOCO_KEY --build-arg PYTHON_VER=$PY_VER -t gym-test .
|
||||
- docker run gym-test
|
||||
|
||||
deploy:
|
||||
@@ -18,4 +19,4 @@ deploy:
|
||||
password: $TWINE_PASSWORD
|
||||
on:
|
||||
tags: true
|
||||
condition: $UBUNTU_VER = 16.04
|
||||
condition: $PY_VER = 3.5
|
||||
|
30
py.Dockerfile
Normal file
30
py.Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
# A Dockerfile that sets up a full Gym install with test dependencies
|
||||
ARG PYTHON_VER
|
||||
FROM python:$PYTHON_VER
|
||||
RUN apt-get -y update && apt-get install -y unzip libglu1-mesa-dev libgl1-mesa-dev libosmesa6-dev xvfb patchelf ffmpeg
|
||||
RUN \
|
||||
# Download mujoco
|
||||
mkdir /root/.mujoco && \
|
||||
cd /root/.mujoco && \
|
||||
curl -O https://www.roboti.us/download/mjpro150_linux.zip && \
|
||||
unzip mjpro150_linux.zip && \
|
||||
curl -O https://www.roboti.us/download/mujoco200_linux.zip && \
|
||||
unzip mujoco200_linux.zip && \
|
||||
mv mujoco200_linux mujoco200
|
||||
|
||||
ARG MUJOCO_KEY
|
||||
ARG PYTHON_VER
|
||||
ENV MUJOCO_KEY=$MUJOCO_KEY
|
||||
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mjpro150/bin
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin
|
||||
RUN echo $MUJOCO_KEY | base64 --decode > /root/.mujoco/mjkey.txt
|
||||
RUN [ "$PYTHON_VER" != "2.7" ] && pip install box2d-py atari-py mujoco-py || echo "skipping atari-py, mujoco-py and box2d-py"
|
||||
|
||||
COPY . /usr/local/gym/
|
||||
RUN cd /usr/local/gym && \
|
||||
pip install /usr/local/gym pytest pytest-forked
|
||||
|
||||
WORKDIR /usr/local/gym/
|
||||
ENTRYPOINT ["/usr/local/gym/bin/docker_entrypoint"]
|
||||
CMD ["pytest","--forked"]
|
@@ -1,5 +0,0 @@
|
||||
numpy>=1.10.4
|
||||
requests>=2.0
|
||||
six
|
||||
pyglet>=1.2.0
|
||||
scipy==0.17.1
|
@@ -1,5 +0,0 @@
|
||||
# Testing
|
||||
pytest
|
||||
mock
|
||||
|
||||
-e .[all]
|
2
setup.py
2
setup.py
@@ -31,7 +31,7 @@ setup(name='gym',
|
||||
if package.startswith('gym')],
|
||||
zip_safe=False,
|
||||
install_requires=[
|
||||
'scipy', 'numpy>=1.10.4', 'requests>=2.0', 'six', 'pyglet>=1.2.0',
|
||||
'scipy', 'numpy>=1.10.4', 'six', 'pyglet>=1.2.0',
|
||||
],
|
||||
extras_require=extras,
|
||||
package_data={'gym': [
|
||||
|
@@ -1,44 +0,0 @@
|
||||
# A Dockerfile that sets up a full Gym install with test dependencies
|
||||
FROM ubuntu:14.04
|
||||
# Note that latest version of mujoco-py, 1.5, does not play nicely with ubuntu 14.04 -
|
||||
# requires patchelf system package not available on 14.04
|
||||
|
||||
# Install keyboard-configuration separately to avoid travis hanging waiting for keyboard selection
|
||||
RUN \
|
||||
apt-get -y update && \
|
||||
apt-get install -y keyboard-configuration && \
|
||||
|
||||
apt-get install -y \
|
||||
python-setuptools \
|
||||
python-pip \
|
||||
python3-dev \
|
||||
libjpeg-dev \
|
||||
cmake \
|
||||
swig \
|
||||
python-pyglet \
|
||||
python3-opengl \
|
||||
libboost-all-dev \
|
||||
libsdl2-2.0.0 \
|
||||
libsdl2-dev \
|
||||
libglu1-mesa \
|
||||
libglu1-mesa-dev \
|
||||
libgles2-mesa-dev \
|
||||
xvfb \
|
||||
libav-tools \
|
||||
freeglut3 \
|
||||
wget \
|
||||
unzip && \
|
||||
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
pip install tox
|
||||
|
||||
|
||||
# install dependencies
|
||||
COPY . /usr/local/gym/
|
||||
RUN cd /usr/local/gym && \
|
||||
tox --notest
|
||||
|
||||
WORKDIR /usr/local/gym/
|
||||
ENTRYPOINT ["/usr/local/gym/bin/docker_entrypoint"]
|
||||
CMD ["tox"]
|
@@ -1,57 +0,0 @@
|
||||
# A Dockerfile that sets up a full Gym install with test dependencies
|
||||
FROM ubuntu:16.04
|
||||
|
||||
# Install keyboard-configuration separately to avoid travis hanging waiting for keyboard selection
|
||||
RUN \
|
||||
apt-get -y update && \
|
||||
apt-get install -y keyboard-configuration && \
|
||||
|
||||
# Maybe Install python3.6 on ubuntu 16.04 ?
|
||||
# apt-get install -y software-properties-common && \
|
||||
# add-apt-repository -y ppa:jonathonf/python-3.6 && \
|
||||
# apt-get -y update && \
|
||||
# apt-get -y install python3.6 python3.6-distutils python3.6-dev
|
||||
|
||||
apt-get install -y \
|
||||
python-setuptools \
|
||||
python-pip \
|
||||
python3-dev \
|
||||
python-pyglet \
|
||||
python3-opengl \
|
||||
libjpeg-dev \
|
||||
libboost-all-dev \
|
||||
libsdl2-dev \
|
||||
libosmesa6-dev \
|
||||
patchelf \
|
||||
xvfb \
|
||||
ffmpeg \
|
||||
wget \
|
||||
unzip && \
|
||||
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
pip install tox && \
|
||||
|
||||
# Download mujoco
|
||||
mkdir /root/.mujoco && \
|
||||
cd /root/.mujoco && \
|
||||
wget https://www.roboti.us/download/mjpro150_linux.zip && \
|
||||
unzip mjpro150_linux.zip && \
|
||||
wget https://www.roboti.us/download/mujoco200_linux.zip && \
|
||||
unzip mujoco200_linux.zip && \
|
||||
mv mujoco200_linux mujoco200
|
||||
|
||||
ARG MUJOCO_KEY
|
||||
ENV MUJOCO_KEY=$MUJOCO_KEY
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mjpro150/bin
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin
|
||||
RUN echo $MUJOCO_KEY | base64 --decode > /root/.mujoco/mjkey.txt
|
||||
|
||||
# install dependencies
|
||||
COPY . /usr/local/gym/
|
||||
RUN cd /usr/local/gym && \
|
||||
tox --notest
|
||||
|
||||
WORKDIR /usr/local/gym/
|
||||
ENTRYPOINT ["/usr/local/gym/bin/docker_entrypoint"]
|
||||
CMD ["tox"]
|
@@ -1,51 +0,0 @@
|
||||
# A Dockerfile that sets up a full Gym install with test dependencies
|
||||
FROM ubuntu:18.04
|
||||
|
||||
# Install keyboard-configuration separately to avoid travis hanging waiting for keyboard selection
|
||||
RUN \
|
||||
apt -y update && \
|
||||
apt install -y keyboard-configuration && \
|
||||
|
||||
apt install -y \
|
||||
python-setuptools \
|
||||
python-pip \
|
||||
python3-dev \
|
||||
python-pyglet \
|
||||
python3-opengl \
|
||||
libjpeg-dev \
|
||||
libboost-all-dev \
|
||||
libsdl2-dev \
|
||||
libosmesa6-dev \
|
||||
patchelf \
|
||||
ffmpeg \
|
||||
xvfb \
|
||||
wget \
|
||||
unzip && \
|
||||
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
pip install tox && \
|
||||
|
||||
# Download mujoco
|
||||
mkdir /root/.mujoco && \
|
||||
cd /root/.mujoco && \
|
||||
wget https://www.roboti.us/download/mjpro150_linux.zip && \
|
||||
unzip mjpro150_linux.zip && \
|
||||
wget https://www.roboti.us/download/mujoco200_linux.zip && \
|
||||
unzip mujoco200_linux.zip && \
|
||||
mv mujoco200_linux mujoco200
|
||||
|
||||
ARG MUJOCO_KEY
|
||||
ENV MUJOCO_KEY=$MUJOCO_KEY
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mjpro150/bin
|
||||
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin
|
||||
RUN echo $MUJOCO_KEY | base64 --decode > /root/.mujoco/mjkey.txt
|
||||
|
||||
# install dependencies
|
||||
COPY . /usr/local/gym/
|
||||
RUN cd /usr/local/gym && \
|
||||
tox --notest
|
||||
|
||||
WORKDIR /usr/local/gym/
|
||||
ENTRYPOINT ["/usr/local/gym/bin/docker_entrypoint"]
|
||||
CMD ["tox"]
|
25
tox.ini
25
tox.ini
@@ -1,25 +0,0 @@
|
||||
# Tox (http://tox.testrun.org/) is a tool for running tests
|
||||
# in multiple virtualenvs. This configuration file will run the
|
||||
# test suite on all supported python versions. To use it, "pip install tox"
|
||||
# and then run "tox" from this directory.
|
||||
|
||||
[tox]
|
||||
envlist = py27, py3
|
||||
|
||||
[testenv:py3]
|
||||
passenv=DISPLAY MUJOCO_KEY LD_LIBRARY_PATH TRAVIS*
|
||||
deps =
|
||||
pytest
|
||||
pytest-forked
|
||||
-e .[all]
|
||||
commands =
|
||||
pytest --forked {posargs}
|
||||
|
||||
[testenv:py27]
|
||||
passenv=DISPLAY MUJOCO_KEY LD_LIBRARY_PATH TRAVIS*
|
||||
deps =
|
||||
pytest
|
||||
pytest-forked
|
||||
-e .
|
||||
commands =
|
||||
pytest --forked {posargs}
|
11
unittest.cfg
11
unittest.cfg
@@ -1,11 +0,0 @@
|
||||
[log-capture]
|
||||
always-on = True
|
||||
clear-handlers = True
|
||||
date-format = None
|
||||
filter = -nose
|
||||
log-level = NOTSET
|
||||
|
||||
[output-buffer]
|
||||
always-on = True
|
||||
stderr = True
|
||||
stdout = True
|
Reference in New Issue
Block a user