Skip to content

Add bootstrap script to template #222

Add bootstrap script to template

Add bootstrap script to template #222

Workflow file for this run

name: Tests validation
on:
push:
branches:
- main
pull_request:
branches: ["*"]
schedule:
- cron: "0 0 * * *"
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Install dependencies
run: python -m pip install -U "copier>=8.0.0" jinja2-time "jupyterlab>=4.0.0,<5" "pydantic<2.0.0"
- name: Create the extension
id: create-extension
env:
COPIER_SKIP_INSTALL_TASK: '1'
run: |
set -eux
tmpfolder=$(mktemp -d)
echo "extension_folder=${tmpfolder}" >> "$GITHUB_OUTPUT"
python -m copier copy -l -d author_name="My Name" -d repository="https://github.com/test/lab-extension" -d venv="none" --vcs-ref HEAD --UNSAFE . ${tmpfolder}
cat ${tmpfolder}/pyproject.toml
- name: Test the extension
working-directory: ${{ steps.create-extension.outputs.extension_folder }}
run: |
set -eux
YARN_ENABLE_IMMUTABLE_INSTALLS=false jlpm
jlpm test
- name: Install the extension
working-directory: ${{ steps.create-extension.outputs.extension_folder }}
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: ${{ steps.create-extension.outputs.extension_folder }}/ui-tests
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
run: jlpm install
- name: Set up browser cache
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('${{ steps.create-extension.outputs.extension_folder }}/ui-tests/yarn.lock') }}
- name: Install browser
run: jlpm playwright install chromium
working-directory: ${{ steps.create-extension.outputs.extension_folder }}/ui-tests
- name: Execute integration tests
working-directory: ${{ steps.create-extension.outputs.extension_folder }}/ui-tests
run: |
jlpm playwright test
- name: Upload Playwright Test report
if: always()
uses: actions/upload-artifact@v3
with:
name: extension-playwright-tests
path: |
${{ steps.create-extension.outputs.extension_folder }}/ui-tests/test-results
${{ steps.create-extension.outputs.extension_folder }}/ui-tests/playwright-report
test-mimerenderer:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Install dependencies
run: python -m pip install -U "copier>=8.0.0" jinja2-time "jupyterlab>=4.0.0,<5" "pydantic<2.0.0"
- name: Create the extension
id: create-extension
env:
COPIER_SKIP_INSTALL_TASK: '1'
run: |
set -eux
tmpfolder=$(mktemp -d)
echo "extension_folder=${tmpfolder}" >> "$GITHUB_OUTPUT"
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" -d venv="none" --vcs-ref HEAD --UNSAFE . ${tmpfolder}
- name: Install the extension
working-directory: ${{ steps.create-extension.outputs.extension_folder }}
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: ${{ steps.create-extension.outputs.extension_folder }}/ui-tests
env:
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
YARN_ENABLE_IMMUTABLE_INSTALLS: false
run: jlpm install
- name: Set up browser cache
uses: actions/cache@v3
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('${{ steps.create-extension.outputs.extension_folder }}/ui-tests/yarn.lock') }}
- name: Install browser
run: jlpm playwright install chromium
working-directory: ${{ steps.create-extension.outputs.extension_folder }}/ui-tests
- name: Execute integration tests
working-directory: ${{ steps.create-extension.outputs.extension_folder }}/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@v3
with:
name: mimerenderer-playwright-tests
path: |
${{ steps.create-extension.outputs.extension_folder }}/ui-tests/test-results
${{ steps.create-extension.outputs.extension_folder }}/ui-tests/playwright-report