New Feature: Auto-generation of test code #75
Workflow file for this run
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
# This is a GitHub workflow defining a set of jobs with a set of steps. | |
# ref: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions | |
# | |
name: Test python-doc | |
on: | |
pull_request: | |
branches: ["**"] | |
push: | |
branches: [main, master] | |
tags: ["**"] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
test_nbgrader: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 45 | |
env: | |
# NOTE: UTF-8 content may be interpreted as ascii and causes errors | |
# without this. | |
LANG: C.UTF-8 | |
MOZ_HEADLESS: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-22.04] | |
group: ["docs", "python"] | |
python: ["3.8", "3.9", "3.10", "3.11"] | |
exclude: | |
- os: windows-latest | |
group: docs | |
- python: "3.8" | |
group: docs | |
- python: "3.9" | |
group: docs | |
- python: "3.10" | |
group: docs | |
steps: | |
# This is how you set an environment variable in a GitHub workflow that | |
# will be available in following steps as if you would used `export | |
# MY_ENV=my-value`. | |
- name: Configure environment variables from job flags | |
run: | | |
if [ "${{ matrix.group }}" == "docs" ]; then | |
echo "GROUP=docs" >> $GITHUB_ENV | |
echo "TIMEOUT_MINUTES=15" >> $GITHUB_ENV | |
fi | |
if [ "${{ matrix.group }}" == "python" ]; then | |
echo "GROUP=python" >> $GITHUB_ENV | |
echo "TIMEOUT_MINUTES=20" >> $GITHUB_ENV | |
fi | |
- uses: actions/checkout@v3 | |
- name: Install node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18.x' | |
# NOTE: actions/setup-python@v2 can make use of a cache within the GitHub | |
# Action virtual environment and setup extremely fast. 3.9 isn't | |
# available in this cache as of November 2020. | |
- name: Install Python ${{ matrix.python }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Run pre-commit | |
if: matrix.group == 'docs' | |
run: | | |
sudo apt-get install pandoc | |
# Remove node | |
sudo rm -rf $(which node) | |
sudo rm -rf $(which node) | |
- name: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip wheel setuptools | |
python tasks.py install --group="$GROUP" | |
pip freeze | |
- name: Install Playwright | |
if: matrix.group != 'docs' | |
run: | | |
npx playwright install | |
- name: Run pytest | |
timeout-minutes: ${{ fromJSON(env.TIMEOUT_MINUTES) }} | |
run: | | |
python tasks.py tests --group="$GROUP" | |
# - name: Submit codecov report | |
# run: | | |
# codecov | |
make_sdist: | |
name: Make SDist | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1 | |
test_sdist: | |
runs-on: ubuntu-latest | |
needs: [make_sdist] | |
name: Install from SDist and Test | |
timeout-minutes: 20 | |
steps: | |
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Remove node | |
run: | | |
sudo rm -rf $(which node) | |
sudo rm -rf $(which node) | |
- uses: jupyterlab/maintainer-tools/.github/actions/test-sdist@v1 | |
with: | |
package_spec: '--editable ."[tests]"' | |
test_command: python -m pytest -vv nbgrader/tests/api || python -m pytest -vv nbgrader/tests/api --lf |