2929 steps :
3030 - name : Checkout repo
3131 uses : actions/checkout@v3
32+ with :
33+ fetch-depth : 0
34+ submodules : true
3235
3336 - name : Install Node.js v14
3437 uses : actions/setup-node@v3
@@ -38,21 +41,17 @@ jobs:
3841 - name : Install helm
3942 uses : azure/setup-helm@v1.1
4043
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-
5352
5453 - name : Install dependencies
55- # if: steps.cache-yarn.outputs.cache-hit != 'true'
54+ if : steps.cache-yarn.outputs.cache-hit != 'true'
5655 run : yarn --frozen-lockfile
5756
5857 - name : Run yarn fmt
7170 steps :
7271 - name : Checkout repo
7372 uses : actions/checkout@v3
73+ with :
74+ fetch-depth : 0
75+ submodules : true
7476
7577 - name : Install Node.js v14
7678 uses : actions/setup-node@v3
@@ -102,56 +104,49 @@ jobs:
102104 env :
103105 CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
104106 steps :
105- - uses : actions/checkout@v3
107+ - name : Checkout repo
108+ uses : actions/checkout@v3
106109 with :
107110 fetch-depth : 0
111+ submodules : true
108112
109113 - name : Install Node.js v14
110114 uses : actions/setup-node@v3
111115 with :
112116 node-version : " 14"
113117
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-
126126
127127 - name : Install dependencies
128- # if: steps.cache-yarn.outputs.cache-hit != 'true'
128+ if : steps.cache-yarn.outputs.cache-hit != 'true'
129129 run : yarn --frozen-lockfile
130130
131131 - name : Build code-server
132132 run : yarn build
133133
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
142138 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 )"
144140
145- - name : Attempt to fetch vscode build from cache
141+ - name : Fetch Code build from cache
146142 id : cache-vscode-2
147143 uses : actions/cache@v2
148144 with :
149145 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
155150 key : vscode-reh-build-${{ secrets.VSCODE_CACHE_VERSION }}-${{ steps.vscode-rev.outputs.rev }}
156151
157152 - name : Build vscode
@@ -197,7 +192,10 @@ jobs:
197192 if : github.event.pull_request.head.repo.full_name == github.repository
198193 runs-on : ubuntu-latest
199194 steps :
200- - uses : actions/checkout@v3
195+ - name : Checkout repo
196+ uses : actions/checkout@v3
197+ with :
198+ fetch-depth : 0
201199
202200 - uses : actions/download-artifact@v3
203201 id : download
@@ -226,7 +224,10 @@ jobs:
226224 container : " centos:7"
227225
228226 steps :
229- - uses : actions/checkout@v3
227+ - name : Checkout repo
228+ uses : actions/checkout@v3
229+ with :
230+ fetch-depth : 0
230231
231232 - name : Install Node.js v14
232233 uses : actions/setup-node@v3
@@ -315,7 +316,10 @@ jobs:
315316 NODE_VERSION : v14.17.4
316317
317318 steps :
318- - uses : actions/checkout@v3
319+ - name : Checkout repo
320+ uses : actions/checkout@v3
321+ with :
322+ fetch-depth : 0
319323
320324 - name : Install Node.js v14
321325 uses : actions/setup-node@v3
@@ -364,7 +368,10 @@ jobs:
364368 runs-on : macos-latest
365369 timeout-minutes : 15
366370 steps :
367- - uses : actions/checkout@v3
371+ - name : Checkout repo
372+ uses : actions/checkout@v3
373+ with :
374+ fetch-depth : 0
368375
369376 - name : Install Node.js v14
370377 uses : actions/setup-node@v3
@@ -409,7 +416,11 @@ jobs:
409416 # since VS Code will load faster due to the bundling.
410417 CODE_SERVER_TEST_ENTRY : " ./release-packages/code-server-linux-amd64"
411418 steps :
412- - uses : actions/checkout@v3
419+ - name : Checkout repo
420+ uses : actions/checkout@v3
421+ with :
422+ fetch-depth : 0
423+ submodules : true
413424
414425 - name : Install Node.js v14
415426 uses : actions/setup-node@v3
@@ -446,12 +457,6 @@ jobs:
446457 ./test/node_modules/.bin/playwright install-deps
447458 ./test/node_modules/.bin/playwright install
448459
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-
455460 - name : Run end-to-end tests
456461 run : yarn test:e2e
457462
@@ -468,8 +473,11 @@ jobs:
468473 trivy-scan-repo :
469474 runs-on : ubuntu-20.04
470475 steps :
471- - name : Checkout code
476+ - name : Checkout repo
472477 uses : actions/checkout@v3
478+ with :
479+ fetch-depth : 0
480+
473481 - name : Run Trivy vulnerability scanner in repo mode
474482 uses : aquasecurity/trivy-action@296212627a1e693efa09c00adc3e03b2ba8edf18
475483 with :
@@ -480,6 +488,7 @@ jobs:
480488 template : " @/contrib/sarif.tpl"
481489 output : " trivy-repo-results.sarif"
482490 severity : " HIGH,CRITICAL"
491+
483492 - name : Upload Trivy scan results to GitHub Security tab
484493 uses : github/codeql-action/upload-sarif@v1
485494 with :
0 commit comments