-
Notifications
You must be signed in to change notification settings - Fork 8
feat: add integration tests to CI workflow #290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
a4a4fc1
427ce17
490eb45
20c1d9f
c93e71d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -135,6 +135,81 @@ jobs: | |||||||||||||||||||||||||||||||||
| - name: Check licenses | ||||||||||||||||||||||||||||||||||
| run: npm run check-licenses | ||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| integration-tests: | ||||||||||||||||||||||||||||||||||
| name: Integration Tests | ||||||||||||||||||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||||||||||||||||||
| timeout-minutes: 60 | ||||||||||||||||||||||||||||||||||
| needs: [build] | ||||||||||||||||||||||||||||||||||
| if: "!contains(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' | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+147
to
+154
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial Inconsistent action versions.
♻️ Suggested fix - name: Checkout
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup Node.js
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6
+ uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| - name: Setup Python | ||||||||||||||||||||||||||||||||||
| uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5.5.0 | ||||||||||||||||||||||||||||||||||
| with: | ||||||||||||||||||||||||||||||||||
| python-version: '3.11' | ||||||||||||||||||||||||||||||||||
| cache: 'pip' | ||||||||||||||||||||||||||||||||||
|
Comment on lines
+156
to
+160
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 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 2Repository: 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 2Repository: 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.ymlRepository: deepnote/vscode-deepnote Length of output: 1259 The pip cache setting is ineffective without a root-level dependency file. The 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||
| - name: Install npm dependencies | ||||||||||||||||||||||||||||||||||
| run: | | ||||||||||||||||||||||||||||||||||
| npm ci --prefer-offline --no-audit | ||||||||||||||||||||||||||||||||||
| # Verify Tailwind CSS native modules are installed for Linux | ||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||
| # Verify Tailwind CSS native modules are installed for Linux | |
| # Verify Tailwind CSS native modules are installed for Linux (npm optional deps bug) | |
| # See: https://github.com/npm/cli/issues/4828 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
Duplicated npm install workaround from build job.
The lightningcss/oxide fallback block is copy-pasted from lines 100-105. Consider extracting it into a shared composite action or reusable step to keep them in sync.
🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 162 - 168, The same lightningcss/oxide
native-install fallback logic is duplicated in the "Install npm dependencies"
step (and the "build" job); extract that logic into a single reusable unit
(either a composite GitHub Action or a reusable workflow step) named clearly
(e.g., install-tailwind-native) and replace the inline node -e fallback lines
for lightningcss and `@tailwindcss/oxide` in both the "Install npm dependencies"
step and the "build" job with a single call to that reusable unit so both jobs
share the same implementation and stay in sync.
Copilot
AI
Jan 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The environment variables TEST_FILES_SUFFIX and CODE_TESTS_WORKSPACE are already set in the test:integration script in package.json (line 2589). Setting them again here is redundant. Consider removing these environment variables or document why they need to be overridden.
| TEST_FILES_SUFFIX: '*.vscode.test,*.vscode.common.test' | |
| CODE_TESTS_WORKSPACE: 'src/test/datascience' |
Copilot
AI
Jan 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The DISPLAY environment variable is unnecessary when using 'xvfb-run --auto-servernum' as it automatically manages the display. The --auto-servernum flag already handles display selection, making this explicit setting redundant.
| DISPLAY: ':99' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick | 🔵 Trivial
**/*.png glob is too broad — may capture unrelated files.
This could pull in PNGs from node_modules or other directories, inflating artifact size. Scope it to test output paths.
♻️ Suggested narrowing
path: |
test-results.xml
logs/
- **/*.png
+ test-results/**/*.png
+ screenshots/**/*.png
retention-days: 7Adjust the paths to wherever your test runner actually writes screenshots.
🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 191 - 201, The artifact upload step
"Upload test artifacts on failure" currently uses a broad glob '**/*.png' which
may capture unrelated files; update the upload-artifact `path` entries (for the
step that uses actions/upload-artifact) to only include the test-runner's
screenshot/output directories (for example the specific folders your test runner
writes to such as e2e/screenshots, cypress/screenshots, or
test-results/screenshots) instead of the recursive '**/*.png' so only
test-related PNGs are uploaded and artifact size is limited.
Copilot
AI
Jan 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first artifact upload already includes all PNG files with the pattern '**/*.png' (line 199). This second upload step for screenshots is redundant and will capture the same files, resulting in duplicate artifacts.
| - name: Upload screenshots on failure | |
| if: failure() | |
| uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 | |
| with: | |
| name: integration-test-screenshots | |
| path: | | |
| **/*screenshot*.png | |
| **/*Screen*.png | |
| retention-days: 7 | |
| if-no-files-found: ignore |
Uh oh!
There was an error while loading. Please reload this page.