name: nightly on: schedule: - cron: '0 7 * * *' # run at 7 AM UTC == midnight PST workflow_dispatch: jobs: markdown-link-check-full: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - uses: actions/setup-node@v2 with: node-version: '12' - name: Install manual dependencies run: | sudo npm install -g markdown-link-check@3.8.7 python -m pip install pre-commit pre-commit install - name: Run markdown checker run: | pre-commit run --hook-stage manual markdown-link-check-full --all-files full-pytest: runs-on: ubuntu-latest # TODO: Re-use pytest workflow once https://github.com/github/roadmap/issues/257 is done. # steps: # - uses: actions/checkout@v2 # - uses: ./.github/workflows/pytest.yml # with: # # Run all tests. # pytest_markers: "not slow or slow" env: TEST_ENFORCE_BUFFER_KEY_TYPES: 1 strategy: # If one test in the matrix fails we still want to run the others. fail-fast: false matrix: python-version: [3.8.x, 3.9.x, 3.10.x] include: - python-version: 3.8.x pip_constraints: test_constraints_min_version.txt - python-version: 3.9.x pip_constraints: test_constraints_mid_version.txt - python-version: 3.10.x pip_constraints: test_constraints_max_version.txt steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Cache pip uses: actions/cache@v2 with: # This path is specific to Ubuntu path: ~/.cache/pip # Look to see if there is a cache hit for the corresponding requirements file key: ${{ runner.os }}-pip-${{ hashFiles('ml-agents/setup.py', 'ml-agents-envs/setup.py', 'test_requirements.txt', matrix.pip_constraints) }} restore-keys: | ${{ runner.os }}-pip- ${{ runner.os }}- - name: Display Python version run: python -c "import sys; print(sys.version)" - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade setuptools python -m pip install --progress-bar=off -e ./ml-agents-envs -c ${{ matrix.pip_constraints }} python -m pip install --progress-bar=off -e ./ml-agents -c ${{ matrix.pip_constraints }} python -m pip install --progress-bar=off -r test_requirements.txt -c ${{ matrix.pip_constraints }} python -m pip install --progress-bar=off -e ./ml-agents-plugin-examples -c ${{ matrix.pip_constraints }} - name: Save python dependencies run: | pip freeze > pip_versions-${{ matrix.python-version }}.txt cat pip_versions-${{ matrix.python-version }}.txt - name: Run pytest run: | pytest --cov=ml-agents --cov=ml-agents-envs \ --cov-report=html --junitxml=junit/test-results-${{ matrix.python-version }}.xml \ -p no:warnings -v -n 8 - name: Upload pytest test results uses: actions/upload-artifact@v2 with: name: artifacts-${{ matrix.python-version }} path: | htmlcov pip_versions-${{ matrix.python-version }}.txt junit/test-results-${{ matrix.python-version }}.xml # Use always() to always run this step to publish test results when there are test failures if: ${{ always() }}