Set CSP frame-ancestors 'self' for nbgrader handlers (#1915) #212
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 extensions | |
on: | |
pull_request: | |
branches: ["**"] | |
push: | |
branches: [main, master] | |
tags: ["**"] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
labextension-compatibility: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 10 | |
steps: | |
- 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 | |
uses: actions/setup-python@v2 | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip wheel setuptools | |
pip install -e . | |
pip freeze | |
- name: Check compatibility | |
run: | | |
if [[ $(jupyter labextension list 2>&1 | grep '(python, nbgrader)' | grep ' X') ]] | |
then | |
echo "Compatibility error" | |
jupyter labextension list | |
exit 1 | |
fi | |
ui-test: | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 40 | |
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] | |
python: ["3.10", "3.11"] | |
group: ["labextensions", "nbextensions"] | |
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: | | |
echo "GROUP=${{ matrix.group }}" >> $GITHUB_ENV | |
- 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: Install Python dependencies | |
run: | | |
python -m pip install --upgrade pip wheel setuptools | |
python tasks.py install --group=${{ matrix.group }} | |
pip freeze | |
- name: Install Playwright | |
run: | | |
npx playwright install | |
- name: Run playwright tests | |
run: | | |
python tasks.py tests --group=${{ matrix.group }} | |
- name: Upload Playwright Test report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nbgrader-uitests-${{ matrix.group }}-${{ matrix.os }}-python${{ matrix.python }} | |
path: | | |
playwright-report |