Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,71 @@ jobs:
- name: Check licenses
run: npm run check-licenses

integration-tests:
name: Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 60
needs: [build]
# Run on all PRs and main branch pushes
# Can be disabled by adding [skip-integration] to PR title or commit message
if: "!contains(github.event.pull_request.title || github.event.head_commit.message || '', '[skip-integration]')"
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6

- name: Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
with:
cache: 'npm'
node-version-file: '.nvmrc'

- name: Setup Python
uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0
with:
python-version: '3.11'
cache: 'pip'
Comment on lines +156 to +160
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for pip dependency files that setup-python can use for caching
fd -t f -g 'requirements*.txt' -g 'pyproject.toml' -g 'setup.py' -g 'Pipfile.lock' -d 2

Repository: deepnote/vscode-deepnote

Length of output: 283


🏁 Script executed:

#!/bin/bash
# Search for Python dependency files
fd -t f 'requirements' -d 2
fd -t f 'pyproject\.toml' -d 2
fd -t f 'setup\.py' -d 2
fd -t f 'Pipfile\.lock' -d 2

Repository: deepnote/vscode-deepnote

Length of output: 173


🏁 Script executed:

#!/bin/bash
# Check the workflow file context around the Python setup
sed -n '150,180p' .github/workflows/ci.yml

Repository: deepnote/vscode-deepnote

Length of output: 1259


The pip cache setting is ineffective without a root-level dependency file.

The cache: 'pip' setting looks for requirements.txt, pyproject.toml, setup.py, or Pipfile.lock at the repository root to generate a cache key. The only Python dependency files in this repo are in subdirectories (build/venv-test-ipywidgets8-requirements.txt, pythonFiles/pyproject.toml). Move or create a root-level dependency file, or remove the cache setting.

🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 156 - 160, The CI job step named
"Setup Python" currently uses with: cache: 'pip' which is ineffective because
there is no root-level dependency file; either add a root-level dependency file
(e.g., requirements.txt or pyproject.toml) containing the repo's Python
dependencies (or create a small file that imports/includes
build/venv-test-ipywidgets8-requirements.txt or references
pythonFiles/pyproject.toml) so the actions/setup-python cache can detect and key
by it, or remove the cache: 'pip' line from the "Setup Python" step to disable
pip caching; update the workflow step accordingly and ensure the change
references the same step name ("Setup Python") in .github/workflows/ci.yml.


- name: Install npm dependencies
run: |
npm ci --prefer-offline --no-audit
# Verify Tailwind CSS native modules are installed for Linux (npm optional deps bug)
# See: https://github.com/npm/cli/issues/4828
node -e "try { require('lightningcss'); } catch { process.exit(1); }" 2>/dev/null || npm install lightningcss-linux-x64-gnu
node -e "try { require('@tailwindcss/oxide'); } catch { process.exit(1); }" 2>/dev/null || npm install @tailwindcss/oxide-linux-x64-gnu

- name: Compile TypeScript
run: npm run compile

- name: Create test virtual environments
uses: ./.github/actions/create-venv-for-tests
with:
IPyWidgetVersion: '8'

- name: Set Python path for tests
uses: ./.github/actions/set-python

- name: Install xvfb for headless VS Code
run: |
sudo apt-get update
sudo apt-get install -y xvfb libxkbfile1 libsecret-1-0 libgbm1 libnss3 libatk-bridge2.0-0 libgtk-3-0

- name: Run integration tests
run: xvfb-run --auto-servernum --server-args="-screen 0 1920x1080x24" npm run test:integration
env:
VSC_JUPYTER_CI_TEST: '1'

- name: Upload test artifacts on failure
if: failure()
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4
with:
name: integration-test-results
path: |
test-results.xml
logs/
**/*.png
retention-days: 7
if-no-files-found: ignore

check_licenses:
name: Check Licenses
runs-on: ubuntu-latest
Expand Down