Skip to content

Snapshot

Snapshot #351

Workflow file for this run

name: UI Tests
on:
issue_comment:
types: [created]
push:
branches:
- main
pull_request:
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers
jobs:
test:
name: Visual Regression Tests
if: ${{ (github.event_name != 'issue_comment') || (github.event.issue.pull_request && (contains(github.event.comment.body, 'Galata snapshots updated.'))) }}
timeout-minutes: 80
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Set up browser cache
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }}
- name: Install dependencies
run: |
bash ./scripts/ci_install.sh
# Build dev-mode
jlpm run build
- name: Launch JupyterLab
run: |
cd galata
jlpm start 2>&1 > /tmp/jupyterlab_server.log &
- name: Install browser
run: |
cd galata
# Install only Chromium browser
jlpm playwright install chromium
jlpm run build
- name: Wait for JupyterLab
run: npx [email protected] http-get://localhost:8888/lab -t 360000
- name: Test
run: |
cd galata
jlpm run test --project galata jupyterlab
mv galata/test-results galata/test-jupyterlab-results || true
# Run once benchmark tests to ensure they have no regression
BENCHMARK_NUMBER_SAMPLES=1 jlpm run test:benchmark
- name: Upload Galata Test assets
if: always()
uses: actions/upload-artifact@v4
with:
name: jupyterlab-galata-test-assets
path: |
galata/test-jupyterlab-results
galata/test-results
- name: Upload Galata Test report
if: always()
uses: actions/upload-artifact@v4
with:
name: jupyterlab-galata-report
path: |
galata/playwright-report
- name: Print JupyterLab logs
if: always()
run: |
cat /tmp/jupyterlab_server.log
test-documentation:
name: Visual Regression Documentation
if: ${{ (github.event_name != 'issue_comment') || (github.event.issue.pull_request && (contains(github.event.comment.body, 'Documentation snapshots updated.'))) }}
# Python version is frozen through strategy.matrix.python-version
# Python dependencies are frozen in the installation step
# Note: IPython is among the frozen package
timeout-minutes: 80
runs-on: ubuntu-22.04
strategy:
matrix:
# Freeze Python version because it appears in console header
python-version: ['3.10.6']
steps:
- name: Checkout JupyterLab
uses: actions/checkout@v4
with:
path: core
- name: Checkout demo project
uses: actions/checkout@v4
with:
repository: jupyterlab/jupyterlab-demo
ref: master
path: demo
- name: Get demo folder
run: |
echo "DEMO_DIR=$PWD" >> $GITHUB_ENV
working-directory: demo
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Set up browser cache
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }}
- name: Install dependencies
run: |
set -ex
# Install chinese font
sudo apt-get update
sudo apt-get install fonts-dejavu fonts-noto
# Freeze the packages to ensure consistent look and feel
# IPython is frozen because its version is displayed in
# the console header
pip install .[docs-screenshots]
bash ./scripts/ci_install.sh
# Build dev-mode
jlpm run build
working-directory: core
- name: Launch JupyterLab
env:
JUPYTERLAB_GALATA_ROOT_DIR: ${{ env.DEMO_DIR }}
# Ignore Python warning for cleaner documentation snapshots
PYTHONWARNINGS: ignore
run: |
set -ex
cd galata
(jupyter lab --config jupyter_server_test_config.py --extensions-in-dev-mode --custom-css > /tmp/jupyterlab_server.log 2>&1) &
working-directory: core
- name: Install browser
run: |
set -ex
cd galata
# Install only Chromium browser
jlpm playwright install chromium
jlpm run build
working-directory: core
- name: Wait for JupyterLab
run: npx [email protected] http-get://localhost:8888/lab -t 360000
- name: Test
run: |
cd galata
jlpm run test:doc
working-directory: core
- name: Upload Galata Test assets
if: always()
uses: actions/upload-artifact@v4
with:
name: jupyterlab-documentation-test-assets
path: |
core/galata/test-results
- name: Upload Galata Test report
if: always()
uses: actions/upload-artifact@v4
with:
name: jupyterlab-documentation-report
path: |
core/galata/playwright-report
- name: Stop JupyterLab
if: always()
run: |
kill -s SIGTERM $(pgrep jupyter-lab)
- name: Print JupyterLab logs
if: always()
run: |
cat /tmp/jupyterlab_server.log