29
29
steps :
30
30
- name : Checkout repo
31
31
uses : actions/checkout@v3
32
+ with :
33
+ fetch-depth : 0
34
+ submodules : true
32
35
33
36
- name : Install Node.js v14
34
37
uses : actions/setup-node@v3
@@ -38,21 +41,17 @@ jobs:
38
41
- name : Install helm
39
42
uses : azure/setup-helm@v1.1
40
43
41
- # NOTE@jsjoeio
42
- # disabling this until we can audit the build process
43
- # and the usefulness of this step
44
- # See: https://github.com/coder/code-server/issues/4287
45
- # - name: Fetch dependencies from cache
46
- # id: cache-yarn
47
- # uses: actions/cache@v2
48
- # with:
49
- # path: "**/node_modules"
50
- # key: yarn-build-${{ hashFiles('**/yarn.lock') }}
51
- # restore-keys: |
52
- # yarn-build-
44
+ - name : Fetch dependencies from cache
45
+ id : cache-yarn
46
+ uses : actions/cache@v2
47
+ with :
48
+ path : " **/node_modules"
49
+ key : yarn-build-${{ hashFiles('**/yarn.lock') }}
50
+ restore-keys : |
51
+ yarn-build-
53
52
54
53
- name : Install dependencies
55
- # if: steps.cache-yarn.outputs.cache-hit != 'true'
54
+ if : steps.cache-yarn.outputs.cache-hit != 'true'
56
55
run : yarn --frozen-lockfile
57
56
58
57
- name : Run yarn fmt
71
70
steps :
72
71
- name : Checkout repo
73
72
uses : actions/checkout@v3
73
+ with :
74
+ fetch-depth : 0
75
+ submodules : true
74
76
75
77
- name : Install Node.js v14
76
78
uses : actions/setup-node@v3
@@ -102,56 +104,49 @@ jobs:
102
104
env :
103
105
CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
104
106
steps :
105
- - uses : actions/checkout@v3
107
+ - name : Checkout repo
108
+ uses : actions/checkout@v3
106
109
with :
107
110
fetch-depth : 0
111
+ submodules : true
108
112
109
113
- name : Install Node.js v14
110
114
uses : actions/setup-node@v3
111
115
with :
112
116
node-version : " 14"
113
117
114
- # TODO@Teffen investigate why this omits code-oss-dev/node_modules
115
- # - name: Fetch dependencies from cache
116
- # id: cache-yarn
117
- # uses: actions/cache@v2
118
- # with:
119
- # path: |
120
- # "**/node_modules"
121
- # "**/vendor/modules"
122
- # "**/vendor/modules/code-oss-dev/node_modules"
123
- # key: yarn-build-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/vendor/yarn.lock') }}
124
- # restore-keys: |
125
- # yarn-build-
118
+ - name : Fetch dependencies from cache
119
+ id : cache-yarn
120
+ uses : actions/cache@v2
121
+ with :
122
+ path : " **/node_modules"
123
+ key : yarn-build-${{ hashFiles('**/yarn.lock') }}
124
+ restore-keys : |
125
+ yarn-build-
126
126
127
127
- name : Install dependencies
128
- # if: steps.cache-yarn.outputs.cache-hit != 'true'
128
+ if : steps.cache-yarn.outputs.cache-hit != 'true'
129
129
run : yarn --frozen-lockfile
130
130
131
131
- name : Build code-server
132
132
run : yarn build
133
133
134
- # Parse the hash of the latest commit inside vendor/modules/code-oss-dev
135
- # use this to avoid rebuilding it if nothing changed
136
- # How it works: the `git log` command fetches the hash of the last commit
137
- # that changed a file inside `vendor/modules/code-oss-dev`. If a commit changes any file in there,
138
- # the hash returned will change, and we rebuild vscode. If the hash did not change,
139
- # (for example, a change to `src/` or `docs/`), we reuse the same build as last time.
140
- # This saves a lot of time in CI, as compiling VSCode can take anywhere from 5-10 minutes.
141
- - name : Get latest vendor/modules/code-oss-dev rev
134
+ # Get Code's git hash. When this changes it means the content is
135
+ # different and we need to rebuild. Use VSCODE_CACHE_VERSION to force a
136
+ # rebuild.
137
+ - name : Get latest lib/vscode rev
142
138
id : vscode-rev
143
- run : echo "::set-output name=rev::$(jq -r '.devDependencies["code-oss-dev"]' vendor/package.json | sed -r 's|.*#(.*)$|\1|' )"
139
+ run : echo "::set-output name=rev::$(git rev-parse HEAD:./lib/vscode )"
144
140
145
- - name : Attempt to fetch vscode build from cache
141
+ - name : Fetch Code build from cache
146
142
id : cache-vscode-2
147
143
uses : actions/cache@v2
148
144
with :
149
145
path : |
150
- vendor/modules/code-oss-dev/.build
151
- vendor/modules/code-oss-dev/package.json
152
- vendor/modules/code-oss-dev/out-build
153
- vendor/modules/code-oss-dev/out-vscode-reh-web
154
- vendor/modules/code-oss-dev/out-vscode-reh-web-min
146
+ lib/vscode/.build
147
+ lib/vscode/out-build
148
+ lib/vscode/out-vscode-reh-web
149
+ lib/vscode/out-vscode-reh-web-min
155
150
key : vscode-reh-build-${{ secrets.VSCODE_CACHE_VERSION }}-${{ steps.vscode-rev.outputs.rev }}
156
151
157
152
- name : Build vscode
@@ -197,7 +192,10 @@ jobs:
197
192
if : github.event.pull_request.head.repo.full_name == github.repository
198
193
runs-on : ubuntu-latest
199
194
steps :
200
- - uses : actions/checkout@v3
195
+ - name : Checkout repo
196
+ uses : actions/checkout@v3
197
+ with :
198
+ fetch-depth : 0
201
199
202
200
- uses : actions/download-artifact@v3
203
201
id : download
@@ -226,7 +224,10 @@ jobs:
226
224
container : " centos:7"
227
225
228
226
steps :
229
- - uses : actions/checkout@v3
227
+ - name : Checkout repo
228
+ uses : actions/checkout@v3
229
+ with :
230
+ fetch-depth : 0
230
231
231
232
- name : Install Node.js v14
232
233
uses : actions/setup-node@v3
@@ -315,7 +316,10 @@ jobs:
315
316
NODE_VERSION : v14.17.4
316
317
317
318
steps :
318
- - uses : actions/checkout@v3
319
+ - name : Checkout repo
320
+ uses : actions/checkout@v3
321
+ with :
322
+ fetch-depth : 0
319
323
320
324
- name : Install Node.js v14
321
325
uses : actions/setup-node@v3
@@ -364,7 +368,10 @@ jobs:
364
368
runs-on : macos-latest
365
369
timeout-minutes : 15
366
370
steps :
367
- - uses : actions/checkout@v3
371
+ - name : Checkout repo
372
+ uses : actions/checkout@v3
373
+ with :
374
+ fetch-depth : 0
368
375
369
376
- name : Install Node.js v14
370
377
uses : actions/setup-node@v3
@@ -409,7 +416,11 @@ jobs:
409
416
# since VS Code will load faster due to the bundling.
410
417
CODE_SERVER_TEST_ENTRY : " ./release-packages/code-server-linux-amd64"
411
418
steps :
412
- - uses : actions/checkout@v3
419
+ - name : Checkout repo
420
+ uses : actions/checkout@v3
421
+ with :
422
+ fetch-depth : 0
423
+ submodules : true
413
424
414
425
- name : Install Node.js v14
415
426
uses : actions/setup-node@v3
@@ -446,12 +457,6 @@ jobs:
446
457
./test/node_modules/.bin/playwright install-deps
447
458
./test/node_modules/.bin/playwright install
448
459
449
- # TODO@jsjoeio - remove once we switch to submodules.
450
- - name : Create package.json for testing
451
- run : |
452
- mkdir -p ./vendor/modules/code-oss-dev
453
- echo '{ "version": "test" }' > ./vendor/modules/code-oss-dev/package.json
454
-
455
460
- name : Run end-to-end tests
456
461
run : yarn test:e2e
457
462
@@ -468,8 +473,11 @@ jobs:
468
473
trivy-scan-repo :
469
474
runs-on : ubuntu-20.04
470
475
steps :
471
- - name : Checkout code
476
+ - name : Checkout repo
472
477
uses : actions/checkout@v3
478
+ with :
479
+ fetch-depth : 0
480
+
473
481
- name : Run Trivy vulnerability scanner in repo mode
474
482
uses : aquasecurity/trivy-action@296212627a1e693efa09c00adc3e03b2ba8edf18
475
483
with :
@@ -480,6 +488,7 @@ jobs:
480
488
template : " @/contrib/sarif.tpl"
481
489
output : " trivy-repo-results.sarif"
482
490
severity : " HIGH,CRITICAL"
491
+
483
492
- name : Upload Trivy scan results to GitHub Security tab
484
493
uses : github/codeql-action/upload-sarif@v1
485
494
with :
0 commit comments