version: 2.0 jobs: build: docker: - image: circleci/python:3.6.1 working_directory: ~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "ml-agents/setup.py" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: name: Install Dependencies command: | python3 -m venv venv . venv/bin/activate pip install --upgrade pip pip install --upgrade setuptools cd ml-agents-envs && pip install -e . cd ../ml-agents && pip install -e . pip install black pytest-cov==2.6.1 codacy-coverage==1.3.11 cd ../gym-unity && pip install -e . - save_cache: paths: - ./venv key: v1-dependencies-{{ checksum "ml-agents/setup.py" }} - run: name: Run Tests for ml-agents and gym_unity command: | . venv/bin/activate mkdir test-reports pytest --cov=mlagents --cov-report xml --junitxml=test-reports/junit.xml -p no:warnings python-codacy-coverage -r coverage.xml - run: name: Check Code Style for ml-agents and gym_unity using black command: | . venv/bin/activate black --check ml-agents black --check ml-agents-envs black --check gym-unity - run: name: Verify there are no hidden/missing metafiles. # Renaming files or deleting files can leave metafiles behind that makes Unity very unhappy. command: | . venv/bin/activate python utils/validate_meta_files.py - store_test_results: path: test-reports - store_artifacts: path: test-reports destination: test-reports