Update gym[atari] requirement from <0.20.0,>=0.17.2 to >=0.17.2,<0.22.0 in /requirements #880
This file contains 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: CI testing | |
# see: https://help.github.com/en/actions/reference/events-that-trigger-workflows | |
on: # Trigger the workflow on push or pull request, but only for the master branch | |
push: | |
branches: [master] | |
pull_request: {} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }} | |
cancel-in-progress: ${{ ! (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release/')) }} | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
pytester: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# Something is wrong with windows tests, will need to debug separately. | |
os: [ubuntu-20.04, macOS-11] | |
# todo: seems there are some issues with py3.10 while install dependencies | |
python-version: ["3.8", "3.9"] | |
requires: ['oldest', 'latest'] | |
env: | |
FREEZE_REQUIREMENTS: 1 | |
TORCH_URL: "https://download.pytorch.org/whl/cpu/torch_stable.html" | |
# Timeout: https://stackoverflow.com/a/59076067/4521646 | |
# the reason for high number is MUCH slower tests on macOS and py3.8 | |
timeout-minutes: 50 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set min. dependencies | |
if: matrix.requires == 'oldest' | |
run: | | |
import os, glob | |
ls = ['requirements.txt'] + glob.glob(os.path.join("requirements", "*.txt")) | |
for fpath in ls: | |
req = open(fpath).read().replace('>=', '==') | |
open(fpath, 'w').write(req) | |
shell: python | |
- name: Install package | |
run: | | |
pip install "pip==22.2.1" # todo: drop after resolving extras | |
pip install -e . -U --prefer-binary -f ${TORCH_URL} | |
pip list | |
- name: Test Package [only] | |
working-directory: ./src | |
run: | | |
pip install "coverage[toml]" pytest -q | |
# TODO: package shall be fine to run full without any ignores | |
python -m pytest . \ | |
--ignore=pl_bolts/datamodules \ | |
--ignore=pl_bolts/datasets \ | |
--ignore=pl_bolts/models/rl | |
- name: Get pip cache dir | |
id: pip-cache | |
run: echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache pip | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pip-cache.outputs.dir }} | |
key: ${{ runner.os }}-pip-${{ matrix.requires }}-${{ hashFiles('requirements/*.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip-${{ matrix.requires }}- | |
- name: Install dependencies | |
run: | | |
pip install -r requirements/devel.txt -U -q -f ${TORCH_URL} | |
pip list | |
- name: Cache datasets | |
id: cache-datasets | |
uses: actions/cache@v3 | |
with: | |
path: ./_datasets | |
# bump this date if you need update cache | |
key: datasets-20230601 | |
- name: Setup macOS | |
if: runner.os == 'macOS' && steps.cache-datasets.outputs.cache-hit != 'true' | |
run: | | |
brew update | |
brew install rar | |
- name: Setup Ubuntu | |
if: runner.os == 'Linux'&& steps.cache-datasets.outputs.cache-hit != 'true' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y unrar | |
- name: Download ROMs | |
if: steps.cache-datasets.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p _datasets | |
cd _datasets | |
curl http://www.atarimania.com/roms/Roms.rar -o Roms.rar | |
unrar x -y Roms.rar | |
rm Roms.rar | |
- name: Init ROMs | |
working-directory: ./_datasets | |
run: python -m atari_py.import_roms ROMS | |
- name: Tests | |
run: python -m pytest tests -v --cov=pl_bolts | |
- name: Statistics | |
if: success() | |
run: | | |
coverage report | |
coverage xml | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
if: always() | |
# see: https://github.com/actions/toolkit/issues/399 | |
continue-on-error: true | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: coverage.xml | |
flags: cpu,pytest | |
env_vars: OS,PYTHON | |
name: codecov-umbrella | |
fail_ci_if_error: false | |
testing-guardian: | |
runs-on: ubuntu-latest | |
needs: pytester | |
if: always() | |
steps: | |
- run: echo "${{ needs.pytester.result }}" | |
- name: failing... | |
if: needs.pytester.result == 'failure' | |
run: exit 1 | |
- name: cancelled or skipped... | |
if: contains(fromJSON('["cancelled", "skipped"]'), needs.pytester.result) | |
timeout-minutes: 1 | |
run: sleep 90 |