Tests validation #556
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: Tests validation | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: ["*"] | |
schedule: | |
- cron: "0 0 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Install dependencies | |
run: python -m pip install -U "copier>=9.2.0" jinja2-time "jupyterlab>=4.0.0,<5" | |
- name: Create the extension | |
run: | | |
set -eux | |
mkdir myextension | |
python -m copier copy -l -d author_name="My Name" -d repository="https://github.com/test/lab-extension" --vcs-ref HEAD --UNSAFE . myextension | |
cat myextension/pyproject.toml | |
- name: Test the extension | |
working-directory: myextension | |
run: | | |
set -eux | |
YARN_ENABLE_IMMUTABLE_INSTALLS=false jlpm | |
jlpm test | |
- name: Install the extension | |
working-directory: myextension | |
run: | | |
set -eux | |
python -m pip install -v . | |
cat myextension/labextension/package.json | |
- name: List extensions | |
run: | | |
jupyter labextension list | |
- name: Install UI tests dependencies | |
working-directory: myextension/ui-tests | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
run: jlpm install | |
- name: Set up browser cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{ github.workspace }}/pw-browsers | |
key: ${{ runner.os }}-${{ hashFiles('myextension/ui-tests/yarn.lock') }} | |
- name: Install browser | |
run: jlpm playwright install chromium | |
working-directory: myextension/ui-tests | |
- name: Execute integration tests | |
working-directory: myextension/ui-tests | |
run: | | |
jlpm playwright test | |
- name: Upload Playwright Test report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: extension-playwright-tests | |
path: | | |
myextension/ui-tests/test-results | |
myextension/ui-tests/playwright-report | |
test-mimerenderer: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Install dependencies | |
run: python -m pip install -U "copier>=9.2.0" jinja2-time "jupyterlab>=4.0.0,<5" | |
- name: Create the extension | |
run: | | |
set -eux | |
mkdir myextension | |
python -m copier copy -l -d kind=mimerenderer -d viewer_name="My Viewer" -d mimetype="application/vnd.my_org.my_type" -d mimetype_name="my_type" -d file_extension=".my_type" -d author_name="My Name" -d repository="https://github.com/test/lab-extension" --vcs-ref HEAD --UNSAFE . myextension | |
- name: Install the extension | |
working-directory: myextension | |
run: | | |
set -eux | |
YARN_ENABLE_IMMUTABLE_INSTALLS=false python -m pip install -v . | |
- name: List extensions | |
run: | | |
jupyter labextension list | |
- name: Install UI tests dependencies | |
working-directory: myextension/ui-tests | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
run: jlpm install | |
- name: Set up browser cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{ github.workspace }}/pw-browsers | |
key: ${{ runner.os }}-${{ hashFiles('myextension/ui-tests/yarn.lock') }} | |
- name: Install browser | |
run: jlpm playwright install chromium | |
working-directory: myextension/ui-tests | |
- name: Execute integration tests | |
working-directory: myextension/ui-tests | |
run: | | |
# Generate reference snapshot first | |
jlpm playwright test -u | |
jlpm playwright test | |
- name: Upload Playwright Test report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mimerenderer-playwright-tests | |
path: | | |
myextension/ui-tests/test-results | |
myextension/ui-tests/playwright-report |