chore(deps): update dependency @nteract/transform-vega to v7.0.10 #439
This file contains hidden or 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: E2E | |
| # Builds the extension VSIX and runs the ExTester end-to-end suite against it. The VSIX is packaged | |
| # here (same as CD) rather than downloaded from CD, so this workflow is self-contained and triggers | |
| # on the same events as CI. | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| e2e: | |
| name: E2E (ExTester) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| env: | |
| # Keep ExTester's downloads (test VS Code, ChromeDriver, settings, screenshots) inside the | |
| # workspace so the artifact-upload paths are predictable. Both this and .test-extensions are | |
| # gitignored. | |
| TEST_RESOURCES: ${{ github.workspace }}/test-resources | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| cache: 'npm' | |
| node-version-file: '.nvmrc' | |
| - name: Setup Python # interpreter the Deepnote environment is created from | |
| uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Install dependencies | |
| run: npm ci --prefer-offline --no-audit | |
| - name: Package extension | |
| run: npm run package | |
| - name: Compile the E2E test sources | |
| run: npm run compile-e2e | |
| - name: Install Electron/Chromium runtime libraries + Xvfb | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y xvfb \ | |
| libatk1.0-0t64 libatk-bridge2.0-0t64 libcups2t64 libgtk-3-0t64 libgdk-pixbuf-2.0-0 \ | |
| libgbm1 libasound2t64 libnss3 libnspr4 libxss1 libxshmfence1 libdrm2 libxkbcommon0 \ | |
| libxcomposite1 libxdamage1 libxrandr2 libxfixes3 libxext6 libxrender1 libpango-1.0-0 \ | |
| libcairo2 libatspi2.0-0 libx11-xcb1 libxcb-dri3-0 libxtst6 libsecret-1-0 \ | |
| libgssapi-krb5-2 libdbus-1-3 libexpat1 python3.12-venv python3-pip | |
| - name: Download the test VS Code + ChromeDriver | |
| run: npm run setup:e2e:vscode | |
| - name: Install the built extension into the test instance | |
| run: npx extest install-vsix -f vscode-deepnote-insiders.vsix -e .test-extensions | |
| - name: Install the Python extension into the test instance | |
| run: npm run setup:e2e:deps | |
| - name: Cache pip wheel downloads | |
| # Provisioning the Deepnote environment pip-installs the toolkit dependency tree into a | |
| # fresh venv on first kernel connect — the bulk of the E2E runtime. Caching pip's wheel | |
| # cache makes that warm on later runs (the installs use the cache; nothing passes | |
| # --no-cache-dir). The key busts when the toolkit version / install set changes; the | |
| # restore-keys prefix keeps the cache warm across unrelated changes, since pip's cache is | |
| # additive. | |
| uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-${{ runner.os }}-py312-${{ hashFiles('src/kernels/deepnote/types.ts', 'src/kernels/deepnote/deepnoteToolkitInstaller.node.ts') }} | |
| restore-keys: | | |
| pip-${{ runner.os }}-py312- | |
| - name: Run E2E | |
| # VS Code launches with --no-sandbox (no AppArmor sysctl needed). Runs once; Mocha's retries:1 | |
| # and rootHooks.ts (dismiss toasts between tests) handle flakiness in the single shared instance. | |
| run: xvfb-run --auto-servernum --server-args='-screen 0 1920x1080x24' npm run test:e2e:prebuilt | |
| - name: Upload failure screenshots | |
| if: failure() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: e2e-screenshots | |
| path: ${{ env.TEST_RESOURCES }}/screenshots/**/*.png | |
| if-no-files-found: ignore | |
| retention-days: 14 |