Release v0.3.7 #502
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: UI Tests | |
on: [push, pull_request] | |
defaults: | |
run: | |
shell: bash -l {0} | |
jobs: | |
ui-tests: | |
name: Visual Regression | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.9] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Setup mamba | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
mamba-version: "*" | |
channels: conda-forge | |
- name: Create the conda environment | |
run: mamba install -q python=3.9 pip jupyterlab_pygments=0.1.0 pytest-cov pytest-rerunfailures nodejs=16.19.0 yarn=1 flake8 ipywidgets matplotlib xeus-cling traitlets=5 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade ".[test,visual_test]" | |
jlpm | |
jlpm build | |
jupyter labextension develop . --overwrite | |
cd ui-tests | |
jlpm install --frozen-lockfile | |
- name: Launch Voila | |
run: | | |
# Mount a volume to overwrite the server configuration | |
jlpm start 2>&1 > /tmp/voila_server.log & | |
working-directory: ui-tests | |
- name: Install browser | |
run: jlpm playwright install chromium | |
working-directory: ui-tests | |
- name: Wait for Voila | |
uses: ifaxity/wait-on-action@v1 | |
with: | |
resource: http-get://localhost:8866/ | |
timeout: 360000 | |
- name: Test | |
run: jlpm run test | |
working-directory: ui-tests | |
- uses: iterative/setup-cml@v1 | |
- name: Publish Results | |
env: | |
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
REPORT: ./benchmark-results/voila-benchmark.md | |
shell: bash | |
run: | | |
cd ui-tests | |
# Publish image to cml.dev | |
echo "" >> ${REPORT} | |
cml-publish ./benchmark-results/voila-benchmark.png --md >> ${REPORT} | |
echo "" >> ${REPORT} | |
# Test if metadata have changed | |
export METADATA_DIFF="/tmp/metadata.diff" | |
diff -u <(jq --sort-keys .metadata benchmark-results/voila-benchmark.json) <(jq --sort-keys .metadata voila-benchmark-expected.json) > ${METADATA_DIFF} || true | |
if [[ -s ${METADATA_DIFF} ]]; then | |
echo "<details><summary>:exclamation: Test metadata have changed</summary>" >> ${REPORT} | |
echo "" >> ${REPORT} | |
echo "\`\`\`diff" >> ${REPORT} | |
cat ${METADATA_DIFF} >> ${REPORT} | |
echo "\`\`\`" >> ${REPORT} | |
echo "" >> ${REPORT} | |
echo "</details>" >> ${REPORT} | |
fi | |
# Save PR number for comment publication | |
echo "${{ github.event.number }}" > ./benchmark-results/NR | |
- name: Upload Playwright Test assets | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: voila-test-assets | |
path: | | |
ui-tests/test-results | |
- name: Upload Playwright Benchmark report | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: voila-benchmark-report | |
path: | | |
ui-tests/benchmark-results | |
- name: Upload Playwright Test report | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: voila-test-report | |
path: | | |
ui-tests/playwright-report | |
- name: Print Voila logs | |
if: always() | |
run: | | |
cat /tmp/voila_server.log |