@@ -74,3 +74,153 @@ jobs:
7474
7575 - name : Run Tests
7676 run : npm run unittest
77+
78+ smoke-tests :
79+ name : Smoke Tests
80+ runs-on : ${{ matrix.os }}
81+ needs : [build-vsix]
82+ strategy :
83+ fail-fast : false
84+ matrix :
85+ os : [ubuntu-latest, windows-latest, macos-latest]
86+ python-version : ['3.9', '3.12', '3.14']
87+
88+ steps :
89+ - name : Checkout
90+ uses : actions/checkout@v4
91+
92+ - name : Install Node
93+ uses : actions/setup-node@v4
94+ with :
95+ node-version : ${{ env.NODE_VERSION }}
96+ cache : ' npm'
97+
98+ - name : Install Python
99+ uses : actions/setup-python@v5
100+ with :
101+ python-version : ${{ matrix.python-version }}
102+
103+ - name : Install Dependencies
104+ run : npm ci
105+
106+ - name : Compile Extension
107+ run : npm run compile
108+
109+ - name : Compile Tests
110+ run : npm run compile-tests
111+
112+ - name : Configure Test Settings
113+ run : |
114+ mkdir -p .vscode-test/user-data/User
115+ echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
116+ shell : bash
117+
118+ - name : Run Smoke Tests (Linux)
119+ if : runner.os == 'Linux'
120+ uses : GabrielBB/xvfb-action@v1
121+ with :
122+ run : npm run smoke-test
123+
124+ - name : Run Smoke Tests (non-Linux)
125+ if : runner.os != 'Linux'
126+ run : npm run smoke-test
127+
128+ e2e-tests :
129+ name : E2E Tests
130+ runs-on : ${{ matrix.os }}
131+ needs : [smoke-tests]
132+ strategy :
133+ fail-fast : false
134+ matrix :
135+ os : [ubuntu-latest, windows-latest, macos-latest]
136+ python-version : ['3.9', '3.12', '3.14']
137+
138+ steps :
139+ - name : Checkout
140+ uses : actions/checkout@v4
141+
142+ - name : Install Node
143+ uses : actions/setup-node@v4
144+ with :
145+ node-version : ${{ env.NODE_VERSION }}
146+ cache : ' npm'
147+
148+ - name : Install Python
149+ uses : actions/setup-python@v5
150+ with :
151+ python-version : ${{ matrix.python-version }}
152+
153+ - name : Install Dependencies
154+ run : npm ci
155+
156+ - name : Compile Extension
157+ run : npm run compile
158+
159+ - name : Compile Tests
160+ run : npm run compile-tests
161+
162+ - name : Configure Test Settings
163+ run : |
164+ mkdir -p .vscode-test/user-data/User
165+ echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
166+ shell : bash
167+
168+ - name : Run E2E Tests (Linux)
169+ if : runner.os == 'Linux'
170+ uses : GabrielBB/xvfb-action@v1
171+ with :
172+ run : npm run e2e-test
173+
174+ - name : Run E2E Tests (non-Linux)
175+ if : runner.os != 'Linux'
176+ run : npm run e2e-test
177+
178+ integration-tests :
179+ name : Integration Tests
180+ runs-on : ${{ matrix.os }}
181+ needs : [smoke-tests]
182+ strategy :
183+ fail-fast : false
184+ matrix :
185+ os : [ubuntu-latest, windows-latest, macos-latest]
186+ python-version : ['3.9', '3.12', '3.14']
187+
188+ steps :
189+ - name : Checkout
190+ uses : actions/checkout@v4
191+
192+ - name : Install Node
193+ uses : actions/setup-node@v4
194+ with :
195+ node-version : ${{ env.NODE_VERSION }}
196+ cache : ' npm'
197+
198+ - name : Install Python
199+ uses : actions/setup-python@v5
200+ with :
201+ python-version : ${{ matrix.python-version }}
202+
203+ - name : Install Dependencies
204+ run : npm ci
205+
206+ - name : Compile Extension
207+ run : npm run compile
208+
209+ - name : Compile Tests
210+ run : npm run compile-tests
211+
212+ - name : Configure Test Settings
213+ run : |
214+ mkdir -p .vscode-test/user-data/User
215+ echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
216+ shell : bash
217+
218+ - name : Run Integration Tests (Linux)
219+ if : runner.os == 'Linux'
220+ uses : GabrielBB/xvfb-action@v1
221+ with :
222+ run : npm run integration-test
223+
224+ - name : Run Integration Tests (non-Linux)
225+ if : runner.os != 'Linux'
226+ run : npm run integration-test
0 commit comments