Skip to content

Commit 2537c5a

Browse files
authored
internal: add ci for vscode extension (#570)
1 parent ff9a6de commit 2537c5a

File tree

3 files changed

+108
-2
lines changed

3 files changed

+108
-2
lines changed

.github/workflows/vscode.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: VSCode
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
tags:
8+
- "**"
9+
pull_request:
10+
11+
jobs:
12+
pre_job:
13+
runs-on: ubuntu-latest
14+
outputs:
15+
should_skip: ${{ steps.skip_check.outputs.should_skip }}
16+
paths_result: ${{ steps.skip_check.outputs.paths_result }}
17+
steps:
18+
- id: skip_check
19+
uses: fkirc/skip-duplicate-actions@c449d86cf33a2a6c7a4193264cc2578e2c3266d4 # pin@v4
20+
with:
21+
paths: '["squawk-vscode/**"]'
22+
23+
typecheck:
24+
needs: pre_job
25+
if: needs.pre_job.outputs.should_skip != 'true'
26+
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v4
30+
- name: Setup pnpm
31+
uses: pnpm/action-setup@v2
32+
with:
33+
version: 8
34+
- name: Setup node
35+
uses: actions/setup-node@v3
36+
with:
37+
node-version-file: "squawk-vscode/package.json"
38+
cache-dependency-path: "squawk-vscode/pnpm-lock.yaml"
39+
cache: "pnpm"
40+
- name: Install JS dependencies
41+
working-directory: "squawk-vscode"
42+
run: pnpm install
43+
44+
- name: Run type check
45+
working-directory: "squawk-vscode"
46+
run: pnpm run check-types
47+
48+
lint:
49+
needs: pre_job
50+
if: needs.pre_job.outputs.should_skip != 'true'
51+
52+
runs-on: ubuntu-latest
53+
steps:
54+
- uses: actions/checkout@v4
55+
- name: Setup pnpm
56+
uses: pnpm/action-setup@v2
57+
with:
58+
version: 8
59+
- name: Setup node
60+
uses: actions/setup-node@v3
61+
with:
62+
node-version-file: "squawk-vscode/package.json"
63+
cache-dependency-path: "squawk-vscode/pnpm-lock.yaml"
64+
cache: "pnpm"
65+
- name: Install JS dependencies
66+
working-directory: "squawk-vscode"
67+
run: pnpm install
68+
69+
- name: Run lints
70+
working-directory: "squawk-vscode"
71+
run: pnpm run lint
72+
73+
test:
74+
needs: pre_job
75+
if: needs.pre_job.outputs.should_skip != 'true'
76+
77+
runs-on: ubuntu-latest
78+
steps:
79+
- uses: actions/checkout@v4
80+
- name: Setup pnpm
81+
uses: pnpm/action-setup@v2
82+
with:
83+
version: 8
84+
- name: Setup node
85+
uses: actions/setup-node@v3
86+
with:
87+
node-version-file: "squawk-vscode/package.json"
88+
cache-dependency-path: "squawk-vscode/pnpm-lock.yaml"
89+
cache: "pnpm"
90+
- name: Install JS dependencies
91+
working-directory: "squawk-vscode"
92+
run: pnpm install
93+
94+
- name: Run tests
95+
working-directory: "squawk-vscode"
96+
run: xvfb-run pnpm run test

squawk-vscode/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@
4040
},
4141
"scripts": {
4242
"vscode:prepublish": "pnpm run package",
43-
"compile": "pnpm run check-types && pnpm run lint && node esbuild.js",
43+
"compile": "pnpm run check-types && node esbuild.js",
4444
"watch": "npm-run-all -p watch:*",
4545
"watch:esbuild": "node esbuild.js --watch",
4646
"watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
4747
"package": "node esbuild.js --production",
4848
"compile-tests": "tsc -p . --outDir out",
4949
"watch-tests": "tsc -p . -w --outDir out",
50-
"pretest": "pnpm run compile-tests && pnpm run compile && pnpm run lint",
50+
"pretest": "pnpm run compile-tests && pnpm run compile",
5151
"check-types": "tsc --noEmit",
5252
"lint": "eslint src",
5353
"test": "vscode-test"
@@ -63,6 +63,7 @@
6363
"@vscode/vsce": "^3.6.0",
6464
"esbuild": "^0.24.0",
6565
"eslint": "^9.16.0",
66+
"globals": "^16.2.0",
6667
"npm-run-all": "^4.1.5",
6768
"prettier": "^3.6.2",
6869
"typescript": "^5.7.2",

squawk-vscode/pnpm-lock.yaml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)