Skip to content

Commit 32b4cbf

Browse files
committed
Merge branch 'main' of https://github.com/continuedev/continue into pe/required-tool-tests
2 parents 29f4713 + d4ed9a4 commit 32b4cbf

File tree

443 files changed

+31367
-4415
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

443 files changed

+31367
-4415
lines changed

.continue/rules/documentation-standards.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ alwaysApply: false
1212

1313
### Conversational and Direct
1414

15-
- Follow Docusaurus documentation standards
15+
- Follow Mintlify documentation standards
1616
- Use simple, conversational language that gets straight to the point
1717
- Avoid overly technical jargon when simpler terms work
1818
- Write as if speaking directly to the developer using the tool

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ body:
1111
attributes:
1212
label: Before submitting your bug report
1313
options:
14+
- label: I've tried using the "Ask AI" feature on the [Continue docs site](https://docs.continue.dev/) to see if the docs have an answer
15+
required: false
1416
- label: I believe this is a bug. I'll try to join the [Continue Discord](https://discord.gg/NWtdYexhMs) for questions
1517
required: false
1618
- label: I'm not able to find an [open issue](https://github.com/continuedev/continue/issues?q=is%3Aopen+is%3Aissue) that reports the same bug
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
name: 'Build VS Code Extension'
2+
description: 'Build VS Code extension for a specific platform'
3+
inputs:
4+
platform:
5+
description: 'Target platform (win32, linux, alpine, darwin)'
6+
required: true
7+
arch:
8+
description: 'Target architecture (x64, arm64, armhf)'
9+
required: true
10+
npm_config_arch:
11+
description: 'npm config arch (x64, arm64, arm)'
12+
required: true
13+
pre-release:
14+
description: 'Whether to build as pre-release'
15+
required: false
16+
default: 'false'
17+
commit-sha:
18+
description: 'Commit SHA for version modification (optional, uses first 7 chars)'
19+
required: false
20+
default: ''
21+
github-token:
22+
description: 'GitHub token for downloading ripgrep'
23+
required: true
24+
outputs:
25+
target:
26+
description: 'The target string used for the build'
27+
value: ${{ steps.set-target.outputs.target }}
28+
vsix-path:
29+
description: 'Path to the generated VSIX file'
30+
value: 'extensions/vscode/*.vsix'
31+
build-path:
32+
description: 'Path to the build artifacts'
33+
value: 'extensions/vscode/build'
34+
35+
runs:
36+
using: 'composite'
37+
steps:
38+
- uses: actions/setup-node@v4
39+
with:
40+
node-version-file: ".nvmrc"
41+
42+
- name: Set target variable
43+
id: set-target
44+
shell: bash
45+
run: echo "target=${{ inputs.platform }}-${{ inputs.arch }}" >> $GITHUB_OUTPUT
46+
47+
- name: Cache npm
48+
uses: actions/cache@v4
49+
with:
50+
path: ~/.npm
51+
key: ${{ runner.os }}-npm-cache-build-${{ hashFiles('**/package-lock.json') }}
52+
53+
- name: Cache extension node_modules
54+
uses: actions/cache@v4
55+
with:
56+
path: extensions/vscode/node_modules
57+
key: ${{ runner.os }}-node-${{ hashFiles('extensions/vscode/package-lock.json') }}
58+
59+
- name: Cache core node_modules
60+
uses: actions/cache@v4
61+
with:
62+
path: core/node_modules
63+
key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }}
64+
65+
- name: Cache gui node_modules
66+
uses: actions/cache@v4
67+
with:
68+
path: gui/node_modules
69+
key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }}
70+
71+
- name: Cache packages node_modules
72+
uses: actions/cache@v4
73+
with:
74+
path: |
75+
packages/*/node_modules
76+
key: ${{ runner.os }}-packages-node-modules-${{ hashFiles('packages/*/package-lock.json') }}
77+
78+
- name: Build packages
79+
shell: bash
80+
run: node ./scripts/build-packages.js
81+
82+
- name: Install extension dependencies
83+
shell: bash
84+
run: |
85+
cd extensions/vscode
86+
npm ci
87+
env:
88+
# https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333
89+
GITHUB_TOKEN: ${{ inputs.github-token }}
90+
91+
- name: Install gui dependencies
92+
shell: bash
93+
run: |
94+
cd gui
95+
npm ci
96+
97+
- name: Install core dependencies
98+
shell: bash
99+
run: |
100+
cd core
101+
npm ci
102+
npm i vectordb
103+
104+
- name: Build GUI
105+
shell: bash
106+
run: |
107+
cd gui
108+
npm run build
109+
110+
- name: Prepackage the extension
111+
shell: bash
112+
run: |
113+
cd extensions/vscode
114+
npm run prepackage -- --target ${{ steps.set-target.outputs.target }}
115+
116+
- name: Re-install esbuild
117+
shell: bash
118+
run: |
119+
cd extensions/vscode
120+
npm install -f esbuild
121+
122+
- name: Modify package.json version with commit SHA
123+
if: inputs.commit-sha != ''
124+
shell: bash
125+
run: |
126+
cd extensions/vscode
127+
# Get current version from package.json
128+
CURRENT_VERSION=$(node -p "require('./package.json').version")
129+
130+
# Create new version with short commit SHA (first 7 chars)
131+
COMMIT_SHORT="${{ inputs.commit-sha }}"
132+
NEW_VERSION="${CURRENT_VERSION}-${COMMIT_SHORT:0:7}"
133+
134+
echo "📝 Updating package.json version from $CURRENT_VERSION to $NEW_VERSION"
135+
136+
# Update version in package.json
137+
sed -i.bak "s/\"version\": \"$CURRENT_VERSION\"/\"version\": \"$NEW_VERSION\"/" package.json
138+
139+
# Remove backup file
140+
rm -f package.json.bak
141+
142+
# Verify the change
143+
echo "✅ New version: $(node -p "require('./package.json').version")"
144+
145+
- name: Package extension (build artifacts)
146+
shell: bash
147+
run: |
148+
cd extensions/vscode
149+
npm run package
150+
151+
- name: Package extension (.vsix files)
152+
shell: bash
153+
run: |
154+
cd extensions/vscode
155+
if [ "${{ inputs.pre-release }}" = "true" ]; then
156+
npx vsce package --pre-release --no-dependencies --target ${{ steps.set-target.outputs.target }}
157+
else
158+
npx vsce package --no-dependencies --target ${{ steps.set-target.outputs.target }}
159+
fi
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
name: "Run JetBrains Tests"
2+
description: "Setup and run JetBrains IntelliJ tests with all dependencies"
3+
4+
inputs:
5+
github-token:
6+
description: "GitHub token for accessing repositories"
7+
required: true
8+
ci-github-token:
9+
description: "CI GitHub token for vscode extension build"
10+
required: true
11+
12+
runs:
13+
using: "composite"
14+
steps:
15+
- uses: actions/setup-node@v4
16+
with:
17+
node-version-file: ".nvmrc"
18+
19+
- uses: actions/cache@v4
20+
with:
21+
path: core/node_modules
22+
key: ${{ runner.os }}-core-node-modules-${{ hashFiles('core/package-lock.json') }}
23+
24+
- name: Build packages and install core dependencies
25+
shell: bash
26+
run: |
27+
node ./scripts/build-packages.js
28+
cd core
29+
npm ci
30+
31+
- name: Install gui node_modules and build
32+
shell: bash
33+
run: |
34+
cd gui
35+
npm ci
36+
npm run build
37+
38+
- name: Setup Java
39+
uses: actions/[email protected]
40+
with:
41+
distribution: zulu
42+
java-version: 17
43+
44+
- name: Setup FFmpeg
45+
uses: AnimMouse/setup-ffmpeg@v1
46+
with:
47+
token: ${{ inputs.github-token }}
48+
49+
- name: Setup Gradle
50+
uses: gradle/actions/setup-gradle@v3
51+
52+
- uses: actions/cache@v4
53+
with:
54+
path: ~/.npm
55+
key: ${{ runner.os }}-npm-cache-jetbrains-${{ hashFiles('extensions/vscode/package-lock.json') }}
56+
57+
- uses: actions/cache@v4
58+
id: vscode-extension-cache
59+
with:
60+
path: extensions/vscode/node_modules
61+
key: ${{ runner.os }}-vscode-node-modules-${{ hashFiles('extensions/vscode/package-lock.json') }}
62+
63+
- uses: actions/cache@v4
64+
id: gui-cache
65+
with:
66+
path: gui/node_modules
67+
key: ${{ runner.os }}-gui-node-modules-${{ hashFiles('gui/package-lock.json') }}
68+
69+
# Cache prepackaged extension build to share with other jobs
70+
- uses: actions/cache@v4
71+
id: vscode-prepackage-cache
72+
with:
73+
path: extensions/vscode/build
74+
key: ${{ runner.os }}-vscode-prepackage-${{ hashFiles('extensions/vscode/package-lock.json', 'extensions/vscode/**/*.ts', 'extensions/vscode/**/*.json') }}
75+
76+
# Only run prepackage if not cached - saves ~1 minute
77+
- name: Run prepackage script
78+
if: steps.vscode-prepackage-cache.outputs.cache-hit != 'true'
79+
shell: bash
80+
run: |
81+
cd extensions/vscode
82+
if [ "${{ steps.vscode-extension-cache.outputs.cache-hit }}" != "true" ]; then
83+
npm ci
84+
fi
85+
npm run prepackage
86+
env:
87+
# https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333
88+
GITHUB_TOKEN: ${{ inputs.ci-github-token }}
89+
90+
- uses: actions/cache@v4
91+
id: binary-cache
92+
with:
93+
path: binary/node_modules
94+
key: ${{ runner.os }}-binary-node-modules-${{ hashFiles('binary/package-lock.json') }}
95+
96+
- name: Build the binaries
97+
shell: bash
98+
run: |
99+
cd binary
100+
npm run build
101+
102+
- name: Start test IDE
103+
shell: bash
104+
run: |
105+
cd extensions/intellij
106+
export DISPLAY=:99.0
107+
Xvfb -ac :99 -screen 0 1920x1080x24 &
108+
sleep 10
109+
mkdir -p build/reports
110+
./gradlew runIdeForUiTests &
111+
112+
- name: Wait for JB connection
113+
uses: jtalk/url-health-check-action@v3
114+
with:
115+
url: http://127.0.0.1:8082
116+
max-attempts: 15
117+
retry-delay: 30s
118+
119+
- name: Run tests
120+
shell: bash
121+
run: |
122+
cd extensions/intellij
123+
export DISPLAY=:99.0
124+
./gradlew test
125+
126+
- name: Move video
127+
if: ${{ failure() }}
128+
shell: bash
129+
run: |
130+
cd extensions/intellij
131+
mv video build/reports
132+
133+
- name: Copy logs
134+
if: ${{ failure() }}
135+
shell: bash
136+
run: |
137+
cd extensions/intellij
138+
mv build/idea-sandbox/system/log/ build/reports
139+
140+
- name: Save fails report
141+
if: ${{ failure() }}
142+
uses: actions/upload-artifact@v4
143+
with:
144+
name: jb-failure-report
145+
path: |
146+
${{ github.workspace }}/extensions/intellij/build/reports

0 commit comments

Comments
 (0)