Compare commits

...

176 Commits

Author SHA1 Message Date
Asher
8d5f383f30 Fix incorrect data path being used (#7991) 2026-09-08 11:02:14 -08:00
cdrci
c9b1fa2e16 Update Helm chart and changelog with 4.136.1 (#7990) 2026-09-08 10:36:08 -08:00
cdrci
00672a5522 Update Code to 1.136.1 (#7981)
* Update Code to 1.136.1

* Do not click on tab during test file opens

It will already be the selected tab, and if any other tab is already
open (like the welcome tab), it will click that instead.

We disable the welcome page so this is not supposed to actually matter,
but that Setting appears not to be working.

Also add the quick input widget selector in the disabled downloads test,
since if the widget never shows up it would mistakenly pass.
2026-09-08 08:32:03 -08:00
denusklo
62284ed549 Run mklink through cmd so windows postinstall works (#7982)
npm install fails on Windows in postinstall with "mklink: command not
found". mklink is a cmd.exe builtin rather than an executable, so the sh
running this script cannot exec it, and every symlink the install needs is
made this way.

The doubled slashes are the usual MSYS escaping, and are safe here because
this branch only runs when the OS was detected as cygwin or mingw.
2026-09-04 12:06:30 -08:00
denusklo
11699e6cd7 Guard FORCE_NODE_VERSION in the version error path (#7983)
Installing on the wrong node version dies with "FORCE_NODE_VERSION: unbound
variable" instead of explaining itself. The script runs under set -u and
this is the one place the variable is read bare; the three other reads all
default it.
2026-09-04 10:46:24 -08:00
cdrci
2b2f8b3d5c Update Helm chart and changelog with 4.135.0 (#7964) 2026-08-27 11:46:21 -08:00
cdrci
de89acbcdc Update Code to 1.135.0 (#7963) 2026-08-26 14:54:52 -08:00
cdrci
e08e907889 Update Helm chart and changelog with 4.134.0 (#7961) 2026-08-24 14:00:49 -08:00
Asher
92f44d9c7b Fix changelog typo 2026-08-24 13:44:38 -08:00
cdrci
88c2b7432e Update Code to 1.134.0 (#7954) 2026-08-20 21:45:25 +00:00
Robert Gingras
4cb856c475 Add --socket-fd CLI option (#7940) 2026-08-20 13:24:49 -08:00
Asher
2d5dbf0b77 Update codeql actions to 4.37.6
One was updated by Dependabot, but not the others.
2026-08-19 14:57:47 -08:00
dependabot[bot]
7833136337 Bump js-yaml from 4.3.1 to 5.2.3 (#7916) 2026-08-19 14:53:50 -08:00
dependabot[bot]
1735f6d3fb Bump brace-expansion from 1.1.11 to 1.1.18 in /test (#7957) 2026-08-19 14:45:44 -08:00
dependabot[bot]
0a7b4b1e16 Bump brace-expansion (#7958) 2026-08-19 22:45:03 +00:00
Asher
fa4426393e Run unit tests when npm deps change 2026-08-19 14:31:06 -08:00
Fernando Softov
04ce2301a7 Add VSCODE_OPTIONS and --vscode-option for Code flags (#1528) (#7952) 2026-08-19 13:44:48 -08:00
dependabot[bot]
2edeb1c991 chore: bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.6 (#7917) 2026-08-19 13:28:08 -08:00
dependabot[bot]
02badb2056 chore: bump github/codeql-action/init from 4.36.2 to 4.37.6 (#7918) 2026-08-19 13:24:38 -08:00
dependabot[bot]
fb43d02d10 chore: bump docker/login-action from 4.2.0 to 4.6.0 (#7919) 2026-08-19 13:23:12 -08:00
dependabot[bot]
b9653442b3 chore: bump softprops/action-gh-release from 3.0.1 to 3.0.2 (#7920) 2026-08-19 13:22:48 -08:00
dependabot[bot]
30852bb006 chore: bump actions/setup-node from 6.4.0 to 7.0.0 (#7921) 2026-08-19 13:22:13 -08:00
dependabot[bot]
f69d40ce6f Bump js-yaml from 4.3.0 to 4.3.1 (#7935) 2026-08-19 13:21:37 -08:00
Anthony Holten
876304f95f Remove --unsafe-perm flag from install scripts (#7953)
npm 12 rejects unknown CLI flags, so the npm install path crashes
with EUNKNOWNCONFIG before installing. The flag has been a no-op
since npm 7; remove it from install.sh and the postinstall guard.
2026-08-19 13:18:20 -08:00
cdrci
c22dc74d53 Update Helm chart and changelog with 4.133.0 (#7951) 2026-08-17 15:58:30 -08:00
cdrci
d2f7a12252 Update Code to 1.133.0 (#7942) 2026-08-17 10:06:00 -08:00
Alexander Freiherr von Buddenbrock
596dbf3416 Update files to reflect the new node.js v24 (#7949)
With the update to node.js v24 in vscode and package.json some files have not been updated and still referenced version 22.x.
2026-08-17 09:03:55 -08:00
赵鑫亿
51f90a376b docs(helm): remove duplicated 'the' in persistence example (#7936) 2026-08-10 10:22:48 -08:00
cdrci
29785ddfba Update Helm chart and changelog with 4.132.0 (#7937) 2026-08-10 10:20:19 -08:00
dependabot[bot]
313bf0359b Bump ip-address from 10.2.0 to 10.4.0 (#7931) 2026-08-06 14:45:38 -08:00
cdrci
41cbd28c44 Update Code to 1.132.0 (#7933) 2026-08-06 22:13:49 +00:00
Asher
208c81a072 Fix mistakenly encoding cookies to proxy
We use the cookie parser to remove the code-server token but by default
it encodes using encodeURIComponent, which encodes more than is strictly
necessary and can break proxied applications.

Now we pass the cookies through unchanged (other than removing the
code-server token).

Fixes #7927.
2026-08-06 13:06:00 -08:00
Asher
f836314954 Use const for unmutated let 2026-08-06 12:35:34 -08:00
Asher
1a370bb606 Update Node types to 24 2026-08-06 11:04:32 -08:00
dependabot[bot]
7ff34158a1 Bump body-parser from 2.2.2 to 2.3.0 (#7902) 2026-08-03 08:26:26 -08:00
dependabot[bot]
2a1c2637cd Bump js-yaml from 4.2.0 to 4.3.0 (#7900) 2026-08-03 08:25:52 -08:00
Anupam Mediratta
4f73664880 Require auth for mint key endpoint (#7923)
The client combines the key from this endpoint to then encrypt secrets into browser storage.
2026-08-03 08:24:25 -08:00
cdrci
eb4ba56acb Update Helm chart and changelog with 4.131.0 (#7922) 2026-07-30 14:37:01 -08:00
Vishal Doshi
924bfac9fd Document opening a file at a line via the payload query parameter (#7909) 2026-07-30 14:14:17 -08:00
Asher
4cf9c11e3f Update changelog with 1.131.0 2026-07-30 14:13:53 -08:00
cdrci
a3fc2899bd Update Code to 1.131.0 (#7912) 2026-07-30 12:25:04 -08:00
Asher
b95360f302 Continue update even if csp patch is missing
This can happen if you run the update multiple times and it was already
deleted from another run but not regenerated yet due to an early
failure like from a conflict.
2026-07-30 11:22:20 -08:00
Asher
9edf867909 Remove dash partially completed update step
Not sure why I assumed this would render.
2026-07-30 11:22:20 -08:00
Anupam Mediratta
f3aca85d02 fix: add cooldown to dependabot config (#7910) 2026-07-30 11:18:50 -08:00
cdrci
14bdb36f92 Update Helm chart and changelog with 4.130.0 (#7906) 2026-07-23 16:18:12 -08:00
cdrci
197ef3e8da Update Code to 1.130.0 (#7904) 2026-07-23 19:09:58 +00:00
dependabot[bot]
5cf68f6241 Bump prettier from 3.8.3 to 3.9.4 (#7876) 2026-07-21 11:45:28 -08:00
dependabot[bot]
1dabd152be chore: bump actions/checkout from 6.0.3 to 7.0.1 (#7874) 2026-07-21 19:18:19 +00:00
dependabot[bot]
3ed5f97448 chore: bump ws from 7.5.10 to 7.5.13 in /test (#7901) 2026-07-21 11:14:19 -08:00
dependabot[bot]
b99ce9a992 chore: bump actions/cache from 5.0.5 to 6.1.0 (#7875) 2026-07-21 11:12:59 -08:00
dependabot[bot]
c2337fec2d chore: bump azure/setup-helm from 5.0.0 to 5.0.1 (#7873) 2026-07-21 11:12:19 -08:00
dependabot[bot]
1e2b734be8 chore: bump awalsh128/cache-apt-pkgs-action from 1.6.1 to 1.6.3 (#7877) 2026-07-20 14:04:23 -08:00
dependabot[bot]
31e6279646 chore: bump softprops/action-gh-release from 3.0.0 to 3.0.1 (#7878) 2026-07-20 14:03:57 -08:00
cdrci
227d08660b Update Code to 1.129.1 (#7899) 2026-07-20 11:00:27 -08:00
cdrci
22b0a3eeab Update Helm chart and changelog with 4.129.0 (#7898) 2026-07-17 11:33:10 -08:00
cdrci
77baee7fe0 Update Code to 1.129.0 (#7897) 2026-07-17 07:05:13 +00:00
Asher
3e76a04b1b Fix automatic CSP hash update
The problem was that whenever the hashe needed an update, the current
patch would create a conflict which cannot be easily auto-resolved.

Instead, put the hashes in a separate patch that is deleted and
regenerated each time, avoiding the conflicts.

Also the web worker iframe hash was not being updated.
2026-07-16 12:41:14 -08:00
cdrci
421e7eb084 Update Helm chart and changelog with 4.128.0 (#7891) 2026-07-13 08:56:29 -08:00
cdrci
cb22f74650 Update Code to 1.128.0 (#7889) 2026-07-10 12:08:44 -08:00
Asher
d103d5057a Fix update script using old Node version
It needs to parse the version *after* the VS Code update, otherwise it
is just pulling whatever the previous version was.

That means we cannot use it in the step title without some refactoring;
opted to just omit it for now.
2026-07-09 22:58:44 -08:00
Asher
aed61bf6ab Remove @schemastore/package
Providing our own type is trivial.
2026-07-02 12:29:55 -08:00
cdrci
1e160477be Update Helm chart and changelog with 4.127.0 (#7882) 2026-07-02 12:05:31 -08:00
cdrci
1e6ed874e3 Update Code to 1.127.0 (#7880)
There is a new use of parsedArgs so we have to pass that in since we
parse on demand instead of globally.
2026-07-01 13:01:48 -08:00
cdrci
dd48f7753b Update Helm chart and changelog with 4.126.0 (#7869) 2026-06-24 14:08:03 -08:00
cdrci
2c06497ca9 Update Code to 1.126.0 (#7868) 2026-06-24 12:05:00 -08:00
Asher
9ccf763b02 Match update PRs titles with commits 2026-06-22 11:31:25 -08:00
cdrci
40b39293fa Update Helm chart and changelog with 4.125.0 (#7863) 2026-06-22 11:29:01 -08:00
Asher
02e28cd254 Name VS Code package "code-oss"
The -dev seems a bit weird since it is not a dev version once it is
built, and also there is a false positive advisory with the code-oss-dev
name.
2026-06-18 10:50:51 -08:00
cdrci
fade53fcaf Update Code to 1.125.0 (#7861) 2026-06-17 10:51:01 -08:00
dependabot[bot]
804ba5bfce Bump codecov/codecov-action from 6.0.1 to 7.0.0 (#7853) 2026-06-16 12:02:46 -08:00
dependabot[bot]
9545b26036 Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.1 (#7855) 2026-06-16 12:01:52 -08:00
dependabot[bot]
2ef530ce11 Bump actions/cache from 4.3.0 to 5.0.5 (#7856) 2026-06-16 12:01:11 -08:00
dependabot[bot]
8009d3c360 Bump typescript-eslint from 8.56.1 to 8.61.1 (#7857) 2026-06-16 11:53:49 -08:00
dependabot[bot]
4ae1fc202e Bump doctoc from 2.3.0 to 2.5.0 (#7858) 2026-06-16 11:52:36 -08:00
dependabot[bot]
a59c3ab990 Bump github/codeql-action from 4.35.4 to 4.36.2 (#7860) 2026-06-16 11:51:47 -08:00
dependabot[bot]
a7f457046f Bump actions/checkout from 6.0.2 to 6.0.3 (#7852) 2026-06-16 11:51:19 -08:00
Asher
25e847dc94 Update Playwright 2026-06-16 11:33:33 -08:00
Asher
e1c839fb1d Slightly improve heart tests
- Get rid of the global isActive mock; in particular the way it shadows
  local ones seemed sketchy.
- No need for requireActual from my testing.
- Reword the comment for why we need setImmediate.
- Add the setImmediate to another test that seemed to only pass because
  of an await on the timer call which is not actually a promise but had
  the side effect of yielding.
- Always set fake/real timers in the before/after handlers and never in
  individual tests.
2026-06-16 11:27:53 -08:00
YONGJAE LEE (이용재)
7dfd68589a fix: re-enable skipped Heart tests and make non-asserting checks assert (#7845) 2026-06-16 09:58:42 -08:00
Asher
72086edbdb Remove Windows npm installation recommendation
We need to properly support Windows before we can recommend any method
of installation, including npm.
2026-06-16 09:45:30 -08:00
Asher
7617ab2b92 Update AUR commit message to match code-server's 2026-06-16 09:45:30 -08:00
Asher
d31d0347cf Remove Dependabot commit prefix
The changelog is manually curated so the prefixes are noise.
2026-06-16 09:45:30 -08:00
dependabot[bot]
5dca609c2a chore: bump i18next from 25.8.13 to 26.3.1 (#7828) 2026-06-16 09:38:09 -08:00
dependabot[bot]
87ac56bf8c chore: bump softprops/action-gh-release from 1 to 3 (#7774) 2026-06-16 09:37:41 -08:00
dependabot[bot]
a056406eff chore: bump form-data in /test (#7848) 2026-06-16 17:35:17 +00:00
dependabot[bot]
24811a6269 chore: bump docker/setup-buildx-action from 4.0.0 to 4.1.0 (#7829) 2026-06-16 17:16:41 +00:00
dependabot[bot]
53ed1e30d2 chore: bump docker/setup-qemu-action from 4.0.0 to 4.1.0 (#7830) 2026-06-16 09:04:01 -08:00
dependabot[bot]
7393d50b09 chore: bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0 (#7832) 2026-06-16 09:03:28 -08:00
dependabot[bot]
f7663cc34c chore: bump codecov/codecov-action from 5.5.4 to 6.0.1 (#7833) 2026-06-16 09:02:59 -08:00
dependabot[bot]
71ba0191f2 chore: bump globals from 16.5.0 to 17.6.0 (#7831) 2026-06-16 08:59:54 -08:00
cdrci
19be49ebe4 Update Helm chart and changelog with 4.124.2 (#7851)
Co-authored-by: cdrci <opensource@coder.com>
2026-06-16 07:57:28 -08:00
cdrci
9fe7eb79d5 Update Code to 1.124.2 (#7846) 2026-06-15 22:28:49 -08:00
Asher
1ccd4f04d2 Update brace-expansion, js-yaml, and ws 2026-06-15 16:42:17 -08:00
Asher
364cf99338 Strip token from cookies before proxying
Since this functionality requires information placed onto the request by
code-server (req.args) and Express (req.cookies), move the standalone
tests into the integration tests as the proxy can no longer run
correctly on its own without that context.

We could strip the header elsewhere or refactor in some way (pass in a
callback function for the stripping or something) but this seems like
the simplest and safest place at the moment to ensure we catch all uses
of the proxy.

In any case, I think it does lend more confidence to know we are testing
the proxy the way it will be used in practice.  The downside is some
additional complexity when setting up tests, but at the moment I do not
think that exchange is overly burdensome.
2026-06-15 16:42:17 -08:00
ka-ishimoto
92a7dce46f Fix false positive CVE alerts by setting package name to code-oss-dev (#7839)
The VS Code build process sets the bundled lib/vscode/package.json name to "code-server" (from product.json nameShort), causing vulnerability scanners to misidentify it and flag non-applicable CVEs. Override the name to "code-oss-dev" in build-release.sh after merging package.json.
Fixes #7071

Signed-off-by: ka-ishimoto <ka-ishimoto@kddi.com>
2026-06-10 11:59:45 -08:00
cdrci
d0d53d924e Update Helm chart and changelog with 4.123.0 (#7838) 2026-06-04 10:50:04 -08:00
Asher
77d880d0c3 Drop armhf builds 2026-06-03 12:06:07 -08:00
Asher
559d73a636 Update Code to 1.123.0 (#7837) 2026-06-03 11:33:49 -08:00
Asher
6fd40c04c7 Fix Helm chart version bump script
Instead of relying on semver which is not installed, just parse it with
bash.
2026-06-02 11:29:19 -08:00
cdrci
63c071959f Update Helm chart and changelog with 4.122.1 (#7835) 2026-06-02 10:42:18 -08:00
cdrci
7be257b252 Update Code to 1.122.1 (#7825) 2026-06-01 14:06:15 -08:00
Asher
923cb753b8 Fix automatic release major version
It was using the VS Code major version instead of code-server's.
2026-06-01 14:05:20 -08:00
dependabot[bot]
6cad75773e chore: bump basic-ftp from 5.3.0 to 5.3.1 (#7786) 2026-06-01 13:56:12 -08:00
Asher
cb2548f989 Make Helm and changelog commit more specific 2026-05-29 10:20:19 -08:00
cdrci
f87e243225 Update to 4.122.0 (#7823) 2026-05-29 10:19:24 -08:00
Asher
d98fcd3598 Fix macos release tag 2026-05-28 13:22:08 -08:00
cdrci
93d3ee8ab1 Update Code to 1.122.0 (#7822) 2026-05-28 12:02:35 -08:00
Asher
030bdcf771 Still finish checklist if a step failed
The point is to get as far as we can.
2026-05-28 11:04:14 -08:00
dependabot[bot]
4a50b99b67 chore: bump ip-address from 10.1.0 to 10.2.0 (#7785) 2026-05-28 10:26:53 -08:00
dependabot[bot]
382aa3ba87 chore: bump dorny/paths-filter from 3.0.3 to 4.0.1 (#7771) 2026-05-28 10:25:20 -08:00
dependabot[bot]
2243efb2e6 chore: bump docker/login-action from 3.7.0 to 4.2.0 (#7772) 2026-05-28 10:24:40 -08:00
dependabot[bot]
477c0b11b8 chore: bump qs from 6.15.0 to 6.15.2 (#7814) 2026-05-28 10:23:44 -08:00
Micah Zoltu
2396092ae9 Make app-name configurable via environment variable (#7818) 2026-05-26 12:26:48 -08:00
dependabot[bot]
4f9c23893a chore: bump robinraju/release-downloader from 1.12 to 1.13 (#7770) 2026-05-22 12:30:42 -08:00
dependabot[bot]
62e5c450f7 chore: bump prettier from 3.6.2 to 3.8.3 (#7776) 2026-05-22 12:29:05 -08:00
dependabot[bot]
265713561c chore: bump ws from 8.19.0 to 8.20.1 (#7804) 2026-05-22 12:28:29 -08:00
dependabot[bot]
c9faf343ba chore: bump aquasecurity/trivy-action (#7769) 2026-05-22 12:27:36 -08:00
Asher
99bfbd5931 Update e2e example commands
I think the syntax changed when we moved from yarn to npm.
2026-05-21 13:30:44 -08:00
Micah Zoltu
238769e535 Apply --app-name to web page titles (#7794) 2026-05-21 12:22:29 -08:00
cdrci
bf61384523 Update to 4.121.0 (#7808) 2026-05-20 15:41:27 -08:00
Asher
2114937ec6 Fix release draft trigger
The branches filter is the target, not the PR branch.
2026-05-20 14:21:59 -08:00
Asher
cd1586214e Remove "VS" from updates
Technically it is Code (or Code OSS), not VS Code.
2026-05-20 14:09:10 -08:00
Asher
51bc3c0f09 Remove unpublished 4.119.0
For some reason, I never actually published the draft on this one.
Since 4.121.0 will be out shortly, opted to just skip it.
2026-05-20 14:05:31 -08:00
Asher
3c3f87a3d2 Fix adding release notes to draft release 2026-05-20 14:01:37 -08:00
cdrci
174b7757a5 Update VS Code to 1.121.0 (#7805) 2026-05-20 10:20:27 -08:00
Asher
359b40d422 Ensure dir exists before writing update checklist 2026-05-19 10:13:01 -08:00
Olivier Benz
ef7ea3e515 Update Code to 1.120.0 (#7796) 2026-05-19 10:07:59 -08:00
Olivier Benz
190b09cc76 Update Code to 1.119.1 (#7795) 2026-05-19 09:54:22 -08:00
Asher
53d981a724 Automatically generate helm/changelog PR 2026-05-08 13:15:25 -08:00
Asher
89ca02c1f7 Add changelog notes to draft release 2026-05-08 13:15:25 -08:00
Asher
2fafe8771d Set name and tag for release 2026-05-08 13:15:25 -08:00
Asher
41c9ed499b Draft release when update branch is merged
Not completely sure this is correct, but will debug with the next
release.
2026-05-08 13:15:25 -08:00
Asher
1605d68709 Update contribution steps for updating
You can now more easily run the update script to finish out an update
and the documentation is updated to match.
2026-05-08 11:20:56 -08:00
Asher
93ce398e28 Make update cron run twice daily
Every hour seems aggressive, typically I will only check for PRs once a
day anyway.
2026-05-08 09:58:12 -08:00
Asher
62a552d896 Check for updates on a schedule 2026-05-07 15:20:49 -08:00
Asher
bd41dca064 Add 4.119.0 to the changelog 2026-05-07 12:10:55 -08:00
Asher
3dbddaaadf Ignore .bak files from sed operations 2026-05-07 12:10:55 -08:00
Asher
58491f317f Add workflow for updating VS Code
For now it is manually triggered.
2026-05-07 10:46:13 -08:00
Asher
9527b7879f Pin GitHub actions 2026-05-07 10:30:37 -08:00
Asher
0059d37db5 Reset cdrci aur repo when publishing
I figure it is probably faster to keep it up to date than to merge
larger and larger changes each time?
2026-05-07 10:23:06 -08:00
Olivier Benz
58aedd0ebc Update Code to 1.119.0 (#7787) 2026-05-07 10:22:50 -08:00
Asher
7056332f0b Add update script 2026-05-07 09:21:20 -08:00
Asher
672b4edfbc Add 4.117.0 and 4.118.0 to changelog 2026-05-07 09:21:20 -08:00
Olivier Benz
442db744d5 Update Code to 1.118.1 (#7783) 2026-05-06 14:18:46 -08:00
Asher
871f1d9048 Skip webkit in e2e tests for now 2026-05-06 12:12:54 -08:00
Asher
f6bd6aa1a4 Update Playwright to 1.59.1 2026-05-06 11:50:06 -08:00
Asher
2787a5ca5d Set debug level for e2e tests 2026-05-06 11:38:07 -08:00
Olivier Benz
dbd25c945c Update Code to 1.118.0 (#7768) 2026-05-05 13:13:54 -08:00
nom3ad
02f4d6ea0b Add ubuntu:resolute 26.04 docker image (#7764) 2026-04-27 09:59:20 -08:00
nom3ad
80a642f511 Update ubuntu tag to noble 24.04 (#7763) 2026-04-27 09:35:06 -08:00
Asher
ddeb0a3de0 Update brace-expansion to 1.1.14 2026-04-22 14:20:28 -08:00
Asher
22ec1ea65b Run formatter on build yaml
I guess it wants double quotes...
2026-04-22 14:18:44 -08:00
Olivier Benz
e0b100ee31 Update Code to 1.117.0 (#7760) 2026-04-22 14:15:18 -08:00
dependabot[bot]
5f7c23bd8e chore: bump lodash from 4.17.23 to 4.18.1 in /test (#7743) 2026-04-17 11:14:54 -08:00
Asher
367dcda592 Update changelog and chart up to 4.116.0 2026-04-17 11:12:33 -08:00
Asher
6ecac88f4d Pin Helm version for linting 2026-04-17 11:12:04 -08:00
egvimo
cc8ac4f40f feat(charts): make replicaCount optional (#7744) 2026-04-17 11:03:44 -08:00
dependabot[bot]
a12c89658c chore: bump follow-redirects from 1.15.11 to 1.16.0 (#7755) 2026-04-17 11:02:42 -08:00
dependabot[bot]
4b4903e809 chore: bump basic-ftp from 5.2.1 to 5.3.0 (#7759) 2026-04-17 11:02:13 -08:00
Asher
be537ce77a Optimize builtin copilot extension (#7757) 2026-04-16 00:07:15 -08:00
Asher
cc8f0b7348 Strip sourcemaps (#7756)
This will significantly reduce the size, and for errors we should be
able to map them as necessary.
2026-04-15 22:56:00 -08:00
Olivier Benz
7cc2270228 Update Code to 1.116.0 (#7754)
* Update Code to 1.116.0

* Add copilot extension build

Seems the vscode build requires this separately now.

* Disable welcome popup

A giant modal window asking you to sign in for AI features is blocking
the tests.  Rather than have to click through it, disable it.  It looks like
this has to be a user setting, so switch to that instead of machine (we
used machine because user settings were in the browser, but they have
been since moved back to disk).

---------

Co-authored-by: Asher <ash@coder.com>
2026-04-15 15:05:17 -08:00
dependabot[bot]
34ac5f47de chore: bump basic-ftp from 5.2.0 to 5.2.1 (#7749) 2026-04-10 11:51:18 -08:00
dependabot[bot]
523c0cbaa7 chore: bump docker/setup-buildx-action from 3.12.0 to 4.0.0 (#7732) 2026-04-10 11:50:15 -08:00
dependabot[bot]
05f481d2f0 chore: bump codecov/codecov-action from 5.5.3 to 6.0.0 (#7731) 2026-04-08 15:29:57 -08:00
dependabot[bot]
c66372452f chore: bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (#7729) 2026-04-08 13:47:30 -08:00
dependabot[bot]
aee8825558 chore: bump azure/setup-helm from 4.3.1 to 5.0.0 (#7728) 2026-04-08 13:46:54 -08:00
dependabot[bot]
f612511974 chore: bump awalsh128/cache-apt-pkgs-action from 1.5.3 to 1.6.0 (#7727) 2026-04-08 13:46:25 -08:00
dependabot[bot]
287f8ecd56 chore: bump path-to-regexp from 8.3.0 to 8.4.0 (#7722) 2026-04-08 13:46:01 -08:00
Olivier Benz
1c6fb2dc20 Update Code to 1.115.0 (#7748) 2026-04-08 11:34:23 -08:00
Asher
f04dc2cabd Update chart and changelog up to v4.114.1 2026-04-06 13:06:20 -08:00
Asher
4af6408e39 Preserve permissions with rsync
This is mostly just because if the opts are empty, it seems to error in
macOS for some reason...(rsync_opts[@]: unbound variable).
2026-04-06 12:03:45 -08:00
Asher
1fa5d5084b Omit argon2 prebuilds
Since we build from source, these are dead weight.

It also ensures we did in fact build from source.
2026-04-06 11:56:28 -08:00
Asher
d74b002969 Build native modules from source
Another thing I managed to miss when refactoring CI.
2026-04-06 11:56:23 -08:00
dependabot[bot]
394c6fc3f9 chore: bump picomatch from 2.3.1 to 2.3.2 in /test (#7717) 2026-04-06 10:26:38 -08:00
dependabot[bot]
0b15b91dc1 chore: bump picomatch from 4.0.3 to 4.0.4 (#7718) 2026-04-06 10:26:13 -08:00
79 changed files with 2105 additions and 835 deletions

View File

@@ -6,6 +6,8 @@ updates:
interval: "monthly" interval: "monthly"
time: "06:00" time: "06:00"
timezone: "America/Chicago" timezone: "America/Chicago"
cooldown:
default-days: 7
labels: [] labels: []
commit-message: commit-message:
prefix: "chore" prefix: "chore"
@@ -16,8 +18,8 @@ updates:
interval: "monthly" interval: "monthly"
time: "06:00" time: "06:00"
timezone: "America/Chicago" timezone: "America/Chicago"
commit-message: cooldown:
prefix: "chore" default-days: 7
labels: [] labels: []
ignore: ignore:
# Ignore patch updates for all dependencies # Ignore patch updates for all dependencies

View File

@@ -21,12 +21,13 @@ jobs:
outputs: outputs:
ci: ${{ steps.filter.outputs.ci }} ci: ${{ steps.filter.outputs.ci }}
code: ${{ steps.filter.outputs.code }} code: ${{ steps.filter.outputs.code }}
deps: ${{ steps.filter.outputs.deps }} npm: ${{ steps.filter.outputs.npm }}
vscode: ${{ steps.filter.outputs.vscode }}
docs: ${{ steps.filter.outputs.docs }} docs: ${{ steps.filter.outputs.docs }}
helm: ${{ steps.filter.outputs.helm }} helm: ${{ steps.filter.outputs.helm }}
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3 - uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
id: filter id: filter
with: with:
filters: | filters: |
@@ -42,11 +43,12 @@ jobs:
code: code:
- "src/**" - "src/**"
- "test/**" - "test/**"
deps: npm:
- "lib/**"
- "patches/**"
- "package-lock.json" - "package-lock.json"
- "test/package-lock.json" - "test/package-lock.json"
vscode:
- "lib/**"
- "patches/**"
- id: debug - id: debug
run: | run: |
echo "${{ toJSON(steps.filter )}}" echo "${{ toJSON(steps.filter )}}"
@@ -55,8 +57,8 @@ jobs:
name: Run prettier check name: Run prettier check
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -72,8 +74,8 @@ jobs:
needs: changes needs: changes
if: needs.changes.outputs.docs == 'true' if: needs.changes.outputs.docs == 'true'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -89,12 +91,11 @@ jobs:
needs: changes needs: changes
if: needs.changes.outputs.helm == 'true' if: needs.changes.outputs.helm == 'true'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4 - uses: bmuschko/setup-kubeconform@e5d264ec1eafe2314e750c429a9da7639dd5a003 # v1.1.0
with: with:
token: ${{ secrets.GITHUB_TOKEN }} kubeconform-version: "0.8.0"
- run: helm plugin install https://github.com/instrumenta/helm-kubeval - run: kubeconform ci/helm-chart
- run: helm kubeval ci/helm-chart
lint-ts: lint-ts:
name: Lint TypeScript files name: Lint TypeScript files
@@ -102,8 +103,8 @@ jobs:
needs: changes needs: changes
if: needs.changes.outputs.code == 'true' if: needs.changes.outputs.code == 'true'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -120,7 +121,7 @@ jobs:
if: needs.changes.outputs.ci == 'true' if: needs.changes.outputs.ci == 'true'
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Check workflow files - name: Check workflow files
run: | run: |
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) 1.7.9 bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) 1.7.9
@@ -131,10 +132,10 @@ jobs:
name: Run unit tests name: Run unit tests
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
needs: changes needs: changes
if: needs.changes.outputs.code == 'true' if: needs.changes.outputs.code == 'true' || needs.changes.outputs.npm == 'true'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -143,7 +144,7 @@ jobs:
test/package-lock.json test/package-lock.json
- run: SKIP_SUBMODULE_DEPS=1 npm ci - run: SKIP_SUBMODULE_DEPS=1 npm ci
- run: npm run test:unit - run: npm run test:unit
- uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5 - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
if: success() if: success()
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
@@ -162,16 +163,16 @@ jobs:
steps: steps:
- run: sudo apt update && sudo apt install -y libkrb5-dev - run: sudo apt update && sudo apt install -y libkrb5-dev
- uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # latest - uses: awalsh128/cache-apt-pkgs-action@553a35bb8ebd9fcabcb1c9451aa4c98e1b4ca8a9 # latest
with: with:
packages: quilt packages: quilt
version: 1.0 version: 1.0
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
submodules: true submodules: true
- run: quilt push -a - run: quilt push -a
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -190,7 +191,7 @@ jobs:
# embedded into the code). Use VSCODE_CACHE_VERSION to force a rebuild. # embedded into the code). Use VSCODE_CACHE_VERSION to force a rebuild.
- name: Fetch prebuilt linux-x64 Code package from cache - name: Fetch prebuilt linux-x64 Code package from cache
id: cache-vscode id: cache-vscode
uses: actions/cache@v4 uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with: with:
path: lib/vscode-reh-web-linux-x64 path: lib/vscode-reh-web-linux-x64
key: vscode-linux-x64-package-${{ secrets.VSCODE_CACHE_VERSION }}-${{ steps.vscode-rev.outputs.rev }}-${{ hashFiles('patches/*.diff', 'ci/build/build-vscode.sh') }} key: vscode-linux-x64-package-${{ secrets.VSCODE_CACHE_VERSION }}-${{ steps.vscode-rev.outputs.rev }}-${{ hashFiles('patches/*.diff', 'ci/build/build-vscode.sh') }}
@@ -204,7 +205,7 @@ jobs:
# Push up an artifact containing the linux-x64 release. # Push up an artifact containing the linux-x64 release.
- run: KEEP_MODULES=1 npm run release - run: KEEP_MODULES=1 npm run release
- run: tar -czf package.tar.gz release - run: tar -czf package.tar.gz release
- uses: actions/upload-artifact@v7 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with: with:
name: linux-x64-package name: linux-x64-package
path: ./package.tar.gz path: ./package.tar.gz
@@ -212,12 +213,14 @@ jobs:
test-e2e: test-e2e:
name: Run e2e tests name: Run e2e tests
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
env:
LOG_LEVEL: debug
needs: [changes, build] needs: [changes, build]
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true' if: needs.changes.outputs.code == 'true' || needs.changes.outputs.npm == 'true' || needs.changes.outputs.vscode == 'true' || needs.changes.outputs.ci == 'true'
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -230,13 +233,13 @@ jobs:
./test/node_modules/.bin/playwright install-deps ./test/node_modules/.bin/playwright install-deps
./test/node_modules/.bin/playwright install ./test/node_modules/.bin/playwright install
- uses: actions/download-artifact@v8 - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with: with:
name: linux-x64-package name: linux-x64-package
- run: tar -xzf package.tar.gz - run: tar -xzf package.tar.gz
- run: CODE_SERVER_TEST_ENTRY=./release npm run test:e2e - run: CODE_SERVER_TEST_ENTRY=./release npm run test:e2e
- uses: actions/upload-artifact@v7 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
if: always() if: always()
with: with:
name: failed-test-videos name: failed-test-videos
@@ -247,12 +250,13 @@ jobs:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LOG_LEVEL: debug
needs: [changes, build] needs: [changes, build]
if: needs.changes.outputs.code == 'true' || needs.changes.outputs.deps == 'true' || needs.changes.outputs.ci == 'true' if: needs.changes.outputs.code == 'true' || needs.changes.outputs.npm == 'true' || needs.changes.outputs.vscode == 'true' || needs.changes.outputs.ci == 'true'
steps: steps:
- name: Cache Caddy - name: Cache Caddy
uses: actions/cache@v4 uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
id: caddy-cache id: caddy-cache
with: with:
path: | path: |
@@ -265,8 +269,8 @@ jobs:
mkdir -p ~/.cache/caddy mkdir -p ~/.cache/caddy
tar -xzf caddy_2.5.2_linux_amd64.tar.gz --directory ~/.cache/caddy tar -xzf caddy_2.5.2_linux_amd64.tar.gz --directory ~/.cache/caddy
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -279,7 +283,7 @@ jobs:
./test/node_modules/.bin/playwright install-deps ./test/node_modules/.bin/playwright install-deps
./test/node_modules/.bin/playwright install ./test/node_modules/.bin/playwright install
- uses: actions/download-artifact@v8 - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with: with:
name: linux-x64-package name: linux-x64-package
- run: tar -xzf package.tar.gz - run: tar -xzf package.tar.gz
@@ -288,7 +292,7 @@ jobs:
- run: CODE_SERVER_TEST_ENTRY=./release npm run test:e2e:proxy - run: CODE_SERVER_TEST_ENTRY=./release npm run test:e2e:proxy
- run: ~/.cache/caddy/caddy stop --config ./ci/Caddyfile - run: ~/.cache/caddy/caddy stop --config ./ci/Caddyfile
if: always() if: always()
- uses: actions/upload-artifact@v7 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
if: always() if: always()
with: with:
name: failed-test-videos-proxy name: failed-test-videos-proxy

View File

@@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Install code-server - name: Install code-server
run: ./install.sh run: ./install.sh
@@ -44,7 +44,7 @@ jobs:
container: "alpine:3.17" container: "alpine:3.17"
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Install curl - name: Install curl
run: apk add curl run: apk add curl
@@ -67,7 +67,7 @@ jobs:
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Install code-server - name: Install code-server
run: ./install.sh run: ./install.sh

View File

@@ -33,12 +33,12 @@ jobs:
run: | run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
- uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1.12 - uses: robinraju/release-downloader@28fc21f50d76778e7023361aa1f863e717d3d56f # v1.13
with: with:
repository: "coder/code-server" repository: "coder/code-server"
tag: ${{ env.TAG }} tag: ${{ env.TAG }}
@@ -64,23 +64,24 @@ jobs:
echo "VERSION=${TAG#v}" >> $GITHUB_ENV echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- name: Checkout code-server-aur repo - name: Checkout code-server-aur repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
repository: "cdrci/code-server-aur" repository: "cdrci/code-server-aur"
token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }} token: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
ref: "master" ref: "master"
- name: Merge in master
run: |
git remote add upstream https://github.com/coder/code-server-aur.git
git fetch upstream
git merge upstream/master
- name: Configure git - name: Configure git
run: | run: |
git config --global user.name cdrci git config --global user.name cdrci
git config --global user.email opensource@coder.com git config --global user.email opensource@coder.com
- name: Fetch and reset master
run: |
git remote add upstream https://github.com/coder/code-server-aur.git
git fetch upstream
git reset --hard upstream/master
git push --force
- name: Validate package - name: Validate package
uses: heyhusen/archlinux-package-action@c9f94059ccbebe8710d31d582f33ef4e84fe575c # v3.0.0 uses: heyhusen/archlinux-package-action@c9f94059ccbebe8710d31d582f33ef4e84fe575c # v3.0.0
with: with:
@@ -92,9 +93,9 @@ jobs:
run: | run: |
git checkout -b update-version-${{ env.VERSION }} git checkout -b update-version-${{ env.VERSION }}
git add . git add .
git commit -m "chore: updating version to ${{ env.VERSION }}" git commit -m "Update to ${{ env.VERSION }}"
git push -u origin $(git branch --show) git push -u origin $(git branch --show)
gh pr create --repo coder/code-server-aur --title "chore: bump version to ${{ env.VERSION }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR gh pr create --repo coder/code-server-aur --title "Update to ${{ env.VERSION }}" --body "PR opened by @$GITHUB_ACTOR" --assignee $GITHUB_ACTOR
docker: docker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -107,27 +108,27 @@ jobs:
run: | run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3 - uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
- uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3 - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1.12 - uses: robinraju/release-downloader@28fc21f50d76778e7023361aa1f863e717d3d56f # v1.13
with: with:
repository: "coder/code-server" repository: "coder/code-server"
tag: v${{ env.VERSION }} tag: v${{ env.VERSION }}
fileName: "*.deb" fileName: "*.deb"
out-file-path: "release-packages" out-file-path: "release-packages"
- uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1.12 - uses: robinraju/release-downloader@28fc21f50d76778e7023361aa1f863e717d3d56f # v1.13
with: with:
repository: "coder/code-server" repository: "coder/code-server"
tag: v${{ env.VERSION }} tag: v${{ env.VERSION }}
@@ -135,3 +136,32 @@ jobs:
out-file-path: "release-packages" out-file-path: "release-packages"
- run: npm run publish:docker - run: npm run publish:docker
repo:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
TAG: ${{ inputs.version || github.ref_name }}
needs: docker
steps:
- name: Set version to tag without leading v
run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- run: ./ci/build/update-repo.sh
- name: Open PR
run: |
git config --global user.name cdrci
git config --global user.email opensource@coder.com
git checkout -b "helm/$VERSION"
git add .
git commit -m "Update Helm chart and changelog with $VERSION"
git push -u origin "$(git branch --show)"
gh pr create \
--repo coder/code-server \
--body-file .cache/checklist \
--title "Update Helm chart and changelog with $VERSION"

View File

@@ -6,6 +6,11 @@ on:
version: version:
type: string type: string
required: true required: true
pull_request_target:
types:
- closed
branches:
- main
permissions: permissions:
contents: write # For creating releases. contents: write # For creating releases.
@@ -21,6 +26,9 @@ jobs:
package-linux: package-linux:
name: ${{ format('linux-{0}', matrix.vscode_arch) }} name: ${{ format('linux-{0}', matrix.vscode_arch) }}
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
if: >-
(github.event_name == 'workflow_dispatch') ||
(github.event_name == 'pull_request_target' && github.event.pull_request.merged == true && startsWith(github.head_ref, 'update/'))
strategy: strategy:
matrix: matrix:
@@ -31,26 +39,27 @@ jobs:
- npm_arch: arm64 - npm_arch: arm64
vscode_arch: arm64 vscode_arch: arm64
package_arch: arm64 package_arch: arm64
- npm_arch: arm
vscode_arch: armhf
package_arch: armv7l
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ELECTRON_SKIP_BINARY_DOWNLOAD: 1 ELECTRON_SKIP_BINARY_DOWNLOAD: 1
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
TAG: ${{ inputs.version || github.ref_name }} TAG: ${{ inputs.version || github.event.pull_request.head.ref || github.ref_name }}
# Set release package name. # Set release package name.
ARCH: ${{ matrix.package_arch }} ARCH: ${{ matrix.package_arch }}
# Cross-compile target. # Cross-compile target.
VSCODE_ARCH: ${{ matrix.vscode_arch }} VSCODE_ARCH: ${{ matrix.vscode_arch }}
npm_config_arch: ${{ matrix.npm_arch }} npm_config_arch: ${{ matrix.npm_arch }}
# Ensure native modules are built from source to avoid prebuilds and use
# the correct version of glibc.
npm_config_build_from_source: true
# Gulp target name. # Gulp target name.
# TODO: Pull from VSCODE_ARCH instead.
VSCODE_TARGET: ${{ format('linux-{0}', matrix.vscode_arch) }} VSCODE_TARGET: ${{ format('linux-{0}', matrix.vscode_arch) }}
steps: steps:
- run: sudo apt update && sudo apt install -y libkrb5-dev - run: sudo apt update && sudo apt install -y libkrb5-dev
- uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # latest - uses: awalsh128/cache-apt-pkgs-action@553a35bb8ebd9fcabcb1c9451aa4c98e1b4ca8a9 # latest
with: with:
packages: quilt packages: quilt
version: 1.0 version: 1.0
@@ -60,15 +69,18 @@ jobs:
curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm
echo "$HOME/.local/bin" >> $GITHUB_PATH echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Set version to tag without leading v - name: Strip update/ and v from tag and set major version
run: | run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV version=${TAG#update/}
version=${version#v}
version=4${version:1}
echo "VERSION=$version" >> $GITHUB_ENV
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
submodules: true submodules: true
- run: quilt push -a - run: quilt push -a
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -95,25 +107,36 @@ jobs:
if: ${{ matrix.vscode_arch == 'x64' }} if: ${{ matrix.vscode_arch == 'x64' }}
- run: tar -czf package.tar.gz release - run: tar -czf package.tar.gz release
if: ${{ matrix.vscode_arch == 'x64' }} if: ${{ matrix.vscode_arch == 'x64' }}
- uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 - run: |
sed "/^## Unreleased/,/^## / ! d" CHANGELOG.md | head -n -2 | tail -n +3 > .cache/release-notes
if: ${{ matrix.vscode_arch == 'x64' }}
- uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
if: ${{ matrix.vscode_arch == 'x64' }} if: ${{ matrix.vscode_arch == 'x64' }}
with: with:
draft: true draft: true
discussion_category_name: "📣 Announcements" discussion_category_name: "📣 Announcements"
files: package.tar.gz files: package.tar.gz
tag_name: v${{ env.VERSION }}
name: v${{ env.VERSION }}
body_path: .cache/release-notes
# Platform-specific release. # Platform-specific release.
- run: KEEP_MODULES=1 npm run release - run: KEEP_MODULES=1 npm run release
- run: npm run package - run: npm run package
- uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 - uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
with: with:
draft: true draft: true
discussion_category_name: "📣 Announcements" discussion_category_name: "📣 Announcements"
files: ./release-packages/* files: ./release-packages/*
tag_name: v${{ env.VERSION }}
name: v${{ env.VERSION }}
package-macos: package-macos:
name: ${{ matrix.vscode_target }} name: ${{ matrix.vscode_target }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
if: >-
(github.event_name == 'workflow_dispatch') ||
(github.event_name == 'pull_request_target' && github.event.pull_request.merged == true && startsWith(github.head_ref, 'update/'))
strategy: strategy:
matrix: matrix:
include: include:
@@ -124,7 +147,9 @@ jobs:
env: env:
VSCODE_TARGET: ${{ matrix.vscode_target }} VSCODE_TARGET: ${{ matrix.vscode_target }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ inputs.version || github.ref_name }} TAG: ${{ inputs.version || github.event.pull_request.head.ref || github.ref_name }}
# Ensure native modules are built from source to avoid prebuilds.
npm_config_build_from_source: true
steps: steps:
# The version of node-gyp we use depends on distutils but it was removed # The version of node-gyp we use depends on distutils but it was removed
@@ -138,15 +163,18 @@ jobs:
curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm
echo "$HOME/.local/bin" >> $GITHUB_PATH echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Set version to tag without leading v - name: Strip update/ and v from tag and set major version
run: | run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV version=${TAG#update/}
version=${version#v}
version=4${version:1}
echo "VERSION=$version" >> $GITHUB_ENV
- uses: actions/checkout@v6 - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
submodules: true submodules: true
- run: quilt push -a - run: quilt push -a
- uses: actions/setup-node@v6 - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
cache: npm cache: npm
@@ -161,8 +189,10 @@ jobs:
- run: npm run test:native - run: npm run test:native
- run: npm run package - run: npm run package
- uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 - uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
with: with:
draft: true draft: true
discussion_category_name: "📣 Announcements" discussion_category_name: "📣 Announcements"
files: ./release-packages/* files: ./release-packages/*
tag_name: v${{ env.VERSION }}
name: v${{ env.VERSION }}

View File

@@ -41,7 +41,7 @@ jobs:
container: "alpine:3.17" container: "alpine:3.17"
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Install test utilities - name: Install test utilities
run: apk add bats checkbashisms run: apk add bats checkbashisms
@@ -58,7 +58,7 @@ jobs:
timeout-minutes: 5 timeout-minutes: 5
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Install lint utilities - name: Install lint utilities
run: sudo apt install shellcheck run: sudo apt install shellcheck

View File

@@ -25,12 +25,12 @@ jobs:
timeout-minutes: 15 timeout-minutes: 15
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install Node.js - name: Install Node.js
uses: actions/setup-node@v6 uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v6
with: with:
node-version-file: .node-version node-version-file: .node-version
@@ -46,12 +46,12 @@ jobs:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- name: Checkout repo - name: Checkout repo
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Run Trivy vulnerability scanner in repo mode - name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@97e0b3872f55f89b95b2f65b3dbab56962816478 uses: aquasecurity/trivy-action@314ff8b43182423b84c50b1670b0e10f858f2d98 # latest
with: with:
scan-type: "fs" scan-type: "fs"
scan-ref: "." scan-ref: "."
@@ -62,7 +62,7 @@ jobs:
severity: "HIGH,CRITICAL" severity: "HIGH,CRITICAL"
- name: Upload Trivy scan results to GitHub Security tab - name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4 uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4
with: with:
sarif_file: "trivy-repo-results.sarif" sarif_file: "trivy-repo-results.sarif"
@@ -76,17 +76,17 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v4 uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with: with:
config-file: ./.github/codeql-config.yml config-file: ./.github/codeql-config.yml
languages: javascript languages: javascript
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v4 uses: github/codeql-action/autobuild@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4 uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6

View File

@@ -18,8 +18,6 @@ on:
- .github/workflows/trivy-docker.yaml - .github/workflows/trivy-docker.yaml
schedule: schedule:
# Run at 10:15 am UTC (3:15am PT/5:15am CT)
# Run at 0 minutes 0 hours of every day.
- cron: "15 10 * * *" - cron: "15 10 * * *"
workflow_dispatch: workflow_dispatch:
@@ -48,10 +46,10 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
- name: Run Trivy vulnerability scanner in image mode - name: Run Trivy vulnerability scanner in image mode
uses: aquasecurity/trivy-action@97e0b3872f55f89b95b2f65b3dbab56962816478 uses: aquasecurity/trivy-action@314ff8b43182423b84c50b1670b0e10f858f2d98 # latest
with: with:
image-ref: "docker.io/codercom/code-server:latest" image-ref: "docker.io/codercom/code-server:latest"
ignore-unfixed: true ignore-unfixed: true
@@ -60,6 +58,6 @@ jobs:
severity: "HIGH,CRITICAL" severity: "HIGH,CRITICAL"
- name: Upload Trivy scan results to GitHub Security tab - name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v4 uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4
with: with:
sarif_file: "trivy-image-results.sarif" sarif_file: "trivy-image-results.sarif"

72
.github/workflows/update.yaml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: Update code-server
on:
workflow_dispatch:
inputs:
version:
type: string
required: true
schedule:
- cron: "0 16,21 * * *"
jobs:
update:
runs-on: ubuntu-latest
env:
TAG: ${{ inputs.version }}
GH_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
steps:
- name: Fetch latest tag
if: env.TAG == ''
run: |
tag=$(curl -fsSLI -o /dev/null -w "%{url_effective}" https://github.com/microsoft/vscode/releases/latest)
tag="${tag#https://github.com/microsoft/vscode/releases/tag/}"
echo "TAG=$tag" >> $GITHUB_ENV
- name: Remove leading v from tag
run: |
echo "VERSION=${TAG#v}" >> $GITHUB_ENV
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
with:
submodules: true
- name: Check current version
id: check
run: |
commit="$(git -C lib/vscode rev-parse HEAD)"
if [[ $(git -C lib/vscode ls-remote --tags | grep "$commit") == */"$VERSION" ]] ; then
echo "$VERSION update has already been merged into $(git rev-parse --abbrev-ref HEAD)"
echo done=true >> $GITHUB_OUTPUT
elif git ls-remote --exit-code --heads origin "update/$VERSION" ; then
echo "There is already a PR for updating to $VERSION"
echo done=true >> $GITHUB_OUTPUT
else
echo "$VERSION update has not started yet"
echo done=false >> $GITHUB_OUTPUT
fi
- uses: awalsh128/cache-apt-pkgs-action@553a35bb8ebd9fcabcb1c9451aa4c98e1b4ca8a9 # latest
if: steps.check.outputs.done == 'false'
with:
packages: quilt
version: 1.0
- run: ./ci/build/update-vscode.sh
if: steps.check.outputs.done == 'false'
- name: Open PR
if: steps.check.outputs.done == 'false'
run: |
git config --global user.name cdrci
git config --global user.email opensource@coder.com
git checkout -b "update/$VERSION"
git add .
git commit -m "Update Code to $VERSION"
git push -u origin "$(git branch --show)"
gh pr create \
--repo coder/code-server \
--title "Update Code to $VERSION" \
--body-file .cache/checklist \
--draft

1
.gitignore vendored
View File

@@ -11,6 +11,7 @@ node_modules
.home .home
coverage coverage
**/.DS_Store **/.DS_Store
*.bak
# Code packages itself here. # Code packages itself here.
/lib/vscode-reh-web-* /lib/vscode-reh-web-*

View File

@@ -1 +1 @@
22.22.1 24.18.1

View File

@@ -22,6 +22,254 @@ Code v99.99.999
## Unreleased ## Unreleased
Code v1.136.1
### Fixed
- The data path was incorrectly being set to `~/.vscode-server-oss/data`.
## [4.136.1](https://github.com/coder/code-server/releases/tag/v4.136.1) - 2026-09-08
Code v1.136.1
### Changed
- Update to Code 1.136.1
## [4.135.0](https://github.com/coder/code-server/releases/tag/v4.135.0) - 2026-08-27
Code v1.135.0
### Changed
- Update to Code 1.135.0
## [4.134.0](https://github.com/coder/code-server/releases/tag/v4.134.0) - 2026-08-24
Code v1.134.0
### Added
- New `--socket-fd` flag that can be used to listen on a file descriptor. In
particular, this allows using code-server with systemd's socket activation.
- New `--vscode-option` repeatable flag that can be used to pass through options
to VS Code. It requires `flag=value` or simply `flag` for booleans. For
example: `--vscode-option enable-sandbox --vscode-option agents=true`. The
`VSCODE_OPTIONS` environment variable may also be used. For example:
`VSCODE_OPTIONS="enable-sandbox agents=true"`. Note that code-server simply
splits this variable on spaces and is not aware of quoting.
### Changed
- Update to Code 1.134.0
- Remove `--unsafe-perm` from installation scripts. This flag results in an
error when used with npm since v12 and has been a no-op since v7. If you are
installing with a version of npm older than v7 as root, installation may not
work correctly.
## [4.133.0](https://github.com/coder/code-server/releases/tag/v4.133.0) - 2026-08-17
Code v1.133.0
### Changed
- Update to Code 1.133.0
## [4.132.0](https://github.com/coder/code-server/releases/tag/v4.132.0) - 2026-08-10
Code v1.132.0
### Changed
- Update to Code 1.132.0
### Fixed
- When proxying, cookies were being decoded and re-encoded, which could cause
issues for applications that encode differently. Cookies are now passed
through unchanged (aside from stripping out code-server's session token).
## [4.131.0](https://github.com/coder/code-server/releases/tag/v4.131.0) - 2026-07-30
Code v1.131.0
### Changed
- Update to Code 1.131.0
## [4.130.0](https://github.com/coder/code-server/releases/tag/v4.130.0) - 2026-07-24
Code v1.130.0
### Changed
- Update to Code 1.130.0
## [4.129.0](https://github.com/coder/code-server/releases/tag/v4.129.0) - 2026-07-17
Code v1.129.0
### Changed
- Update to Code 1.129.0
## [4.128.0](https://github.com/coder/code-server/releases/tag/v4.128.0) - 2026-07-11
Code v1.128.0
### Changed
- Update to Code 1.128.0
## [4.127.0](https://github.com/coder/code-server/releases/tag/v4.127.0) - 2026-07-02
Code v1.127.0
### Changed
- Update to Code 1.127.0
## [4.126.0](https://github.com/coder/code-server/releases/tag/v4.126.0) - 2026-06-24
Code v1.126.0
### Changed
- Update to Code 1.126.0
## [4.125.0](https://github.com/coder/code-server/releases/tag/v4.125.0) - 2026-06-18
Code v1.125.0
### Changed
- Update to Code 1.125.0
## [4.124.2](https://github.com/coder/code-server/releases/tag/v4.124.2) - 2026-06-16
Code v1.124.2
### Security
- Strip code-server's session token from the cookie before proxying to a local
port. Previously, when you used built-in password authentication, the cookie
would be sent to the local proxied port, which meant if the service was
malicious and not already running as your code-server user it could use the
cookie to log into code-server and execute commands as your code-server user.
### Changed
- Update to Code 1.124.2
## [4.123.0](https://github.com/coder/code-server/releases/tag/v4.123.0) - 2026-06-03
Code v1.123.0
### Changed
- Update to Code 1.123.0
- Microsoft dropped support for armhf remotes so there will no longer be any
builds for armhf.
## [4.122.1](https://github.com/coder/code-server/releases/tag/v4.122.1) - 2026-06-02
Code v1.122.1
### Changed
- Update to Code 1.122.1
## [4.122.0](https://github.com/coder/code-server/releases/tag/v4.122.0) - 2026-05-29
Code v1.122.0
### Changed
- Update to Code 1.122.0
### Fixed
- `--app-name` will now affect window titles within the editor (it is now used
as the value for `${appName}` in the title template) as well as some other
places like the help > about dialog.
### Added
- App name can now be set with the `CODE_SERVER_APP_NAME` environment variable.
## [4.121.0](https://github.com/coder/code-server/releases/tag/v4.121.0) - 2026-05-20
Code v1.121.0
### Changed
- Update to Code 1.121.0
## [4.118.0](https://github.com/coder/code-server/releases/tag/v4.118.0) - 2026-05-06
Code v1.118.0
### Changed
- Update to Code 1.118.0
## [4.117.0](https://github.com/coder/code-server/releases/tag/v4.117.0) - 2026-04-22
Code v1.117.0
### Changed
- Update to Code 1.117.0
## [4.116.0](https://github.com/coder/code-server/releases/tag/v4.116.0) - 2026-04-16
Code v1.116.0
### Changed
- Update to Code 1.116.0
## [4.115.0](https://github.com/coder/code-server/releases/tag/v4.115.0) - 2026-04-08
Code v1.115.0
### Changed
- Update to Code 1.115.0
## [4.114.1](https://github.com/coder/code-server/releases/tag/v4.114.1) - 2026-04-06
Code v1.114.0
### Changed
- Ensure native modules are built from source so they use the correct version of
glibc. This should bring down the requirement from 2.34 back down to 2.28.
## [4.114.0](https://github.com/coder/code-server/releases/tag/v4.114.0) - 2026-04-04
Code v1.114.0
### Changed
- Update to Code 1.114.0.
## [4.113.1](https://github.com/coder/code-server/releases/tag/v4.113.1) - 2026-04-03
Code v1.113.0
This is a re-release of v4.113.0 but with the correct Node binaries for arm64
and armv7l. Previously they were packaging the amd64 Node binary due to a
mistake while refactoring CI to use more of the upstream build scripts.
## [4.113.0](https://github.com/coder/code-server/releases/tag/v4.113.0) - 2026-04-02
Code v1.113.0
### Changed
- Update to Code 1.113.0
## [4.112.0](https://github.com/coder/code-server/releases/tag/v4.112.0) - 2026-03-19 ## [4.112.0](https://github.com/coder/code-server/releases/tag/v4.112.0) - 2026-03-19
Code v1.112.0 Code v1.112.0

View File

@@ -79,7 +79,15 @@ EOF
mv npm-shrinkwrap.json "$RELEASE_PATH" mv npm-shrinkwrap.json "$RELEASE_PATH"
if [ "$KEEP_MODULES" = 1 ]; then if [ "$KEEP_MODULES" = 1 ]; then
rsync node_modules/ "$RELEASE_PATH/node_modules" local rsync_opts=(-a)
if [[ ${DEBUG-} = 1 ]]; then
rsync_opts+=(-vh)
fi
# If we build from source, exclude the prebuilds.
if [[ ${npm_config_build_from_source-} = true ]]; then
rsync_opts+=(--exclude /argon2/prebuilds)
fi
rsync "${rsync_opts[@]}" node_modules/ "$RELEASE_PATH/node_modules"
# Remove dev dependencies. # Remove dev dependencies.
pushd "$RELEASE_PATH" pushd "$RELEASE_PATH"
npm prune --production npm prune --production
@@ -92,7 +100,7 @@ EOF
bundle_vscode() { bundle_vscode() {
mkdir -p "$VSCODE_OUT_PATH" mkdir -p "$VSCODE_OUT_PATH"
local rsync_opts=() local rsync_opts=(-a)
if [[ ${DEBUG-} = 1 ]]; then if [[ ${DEBUG-} = 1 ]]; then
rsync_opts+=(-vh) rsync_opts+=(-vh)
fi fi
@@ -120,7 +128,9 @@ bundle_vscode() {
# Merge the package.json for the web/remote server so we can include # Merge the package.json for the web/remote server so we can include
# dependencies, since we want to ship this via NPM. # dependencies, since we want to ship this via NPM.
jq --slurp '.[0] * .[1]' \ # Also override the name to prevent vulnerability scanners from
# misidentifying this package as VS Code (see #7071).
jq --slurp '.[0] * .[1] | .name = "code-oss"' \
"$VSCODE_SRC_PATH/remote/package.json" \ "$VSCODE_SRC_PATH/remote/package.json" \
"$VSCODE_OUT_PATH/package.json" > "$VSCODE_OUT_PATH/package.json.merged" "$VSCODE_OUT_PATH/package.json" > "$VSCODE_OUT_PATH/package.json.merged"
mv "$VSCODE_OUT_PATH/package.json.merged" "$VSCODE_OUT_PATH/package.json" mv "$VSCODE_OUT_PATH/package.json.merged" "$VSCODE_OUT_PATH/package.json"

View File

@@ -107,6 +107,9 @@ main() {
EOF EOF
) > product.json ) > product.json
VSCODE_QUALITY=stable npm run gulp compile-copilot-extension-full-build
npm run gulp core-ci npm run gulp core-ci
npm run gulp "vscode-reh-web-$VSCODE_TARGET${MINIFY:+-min}-ci" npm run gulp "vscode-reh-web-$VSCODE_TARGET${MINIFY:+-min}-ci"

View File

@@ -18,7 +18,7 @@ symlink() {
dest="$2" dest="$2"
rm -rf "$dest" rm -rf "$dest"
case $OS in case $OS in
windows) mklink /J "$dest" "$source" ;; windows) cmd //c mklink //J "$dest" "$source" ;;
*) ln -s "$source" "$dest" ;; *) ln -s "$source" "$dest" ;;
esac esac
} }
@@ -65,9 +65,9 @@ main() {
echo "USE AT YOUR OWN RISK!" echo "USE AT YOUR OWN RISK!"
fi fi
if [ "$major_node_version" -ne "${FORCE_NODE_VERSION:-22}" ]; then if [ "$major_node_version" -ne "${FORCE_NODE_VERSION:-24}" ]; then
echo "ERROR: code-server currently requires node v22." echo "ERROR: code-server currently requires node v24."
if [ -n "$FORCE_NODE_VERSION" ]; then if [ -n "${FORCE_NODE_VERSION:-}" ]; then
echo "However, you have overrided the version check to use v$FORCE_NODE_VERSION." echo "However, you have overrided the version check to use v$FORCE_NODE_VERSION."
fi fi
echo "We have detected that you are on node v$major_node_version" echo "We have detected that you are on node v$major_node_version"
@@ -76,20 +76,6 @@ main() {
exit 1 exit 1
fi fi
# Under npm, if we are running as root, we need --unsafe-perm otherwise
# post-install scripts will not have sufficient permissions to do their thing.
if is_root; then
case "${npm_config_user_agent-}" in npm*)
if [ "${npm_config_unsafe_perm-}" != "true" ]; then
echo "Please pass --unsafe-perm to npm to install code-server"
echo "Otherwise post-install scripts will not have permissions to run"
echo "See https://docs.npmjs.com/misc/config#unsafe-perm"
echo "See https://stackoverflow.com/questions/49084929/npm-sudo-global-installation-unsafe-perm"
exit 1
fi
;;
esac
fi
if ! vscode_install; then if ! vscode_install; then
echo "You may not have the required dependencies to build the native modules." echo "You may not have the required dependencies to build the native modules."
@@ -110,7 +96,7 @@ install_with_yarn_or_npm() {
# end-user we want to keep using whatever package manager is in use. # end-user we want to keep using whatever package manager is in use.
case "${npm_config_user_agent-}" in case "${npm_config_user_agent-}" in
npm*) npm*)
if ! npm install --unsafe-perm --omit=dev; then if ! npm install --omit=dev; then
return 1 return 1
fi fi
;; ;;

96
ci/build/update-repo.sh Executable file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# Given versions $1 and $2 figure out the first component that is different
# (major, minor, patch).
function find_version_diff() {
# shellcheck disable=SC2206
local a=( ${1//./ } )
# shellcheck disable=SC2206
local b=( ${2//./ } )
if [[ ${a[0]} != "${b[0]}" ]] ; then
echo major
elif [[ ${a[1]} != "${b[1]}" ]] ; then
echo minor
else
echo patch
fi
}
# Bump $1 by the bump type (major, minor, patch) in $2.
function bump_version() {
# shellcheck disable=SC2206
local a=( ${1//./ } )
case $2 in
major)
((a[0]++))
a[1]=0
a[2]=0
;;
minor)
((a[1]++))
a[2]=0
;;
*)
((a[2]++))
;;
esac
echo "${a[0]}.${a[1]}.${a[2]}"
}
function update_helm() {
local chart_version
chart_version=$(yq .version ci/helm-chart/Chart.yaml)
local app_version
app_version=$(yq .appVersion ci/helm-chart/Chart.yaml)
local image_version
image_version=$(yq .image.tag ci/helm-chart/values.yaml)
local bump_type
bump_type=$(find_version_diff "$app_version" "$version")
local chart_version_bump
chart_version_bump=$(bump_version "$chart_version" "$bump_type")
# Use sed to replace because yq will reformat.
echo "Bumping version from $chart_version to $chart_version_bump..."
sed -i.bak "s/^version: $chart_version\$/version: $chart_version_bump/" ci/helm-chart/Chart.yaml
echo "Bumping app version from $app_version to $version..."
sed -i.bak "s/^appVersion: .\+\$/appVersion: $version/" ci/helm-chart/Chart.yaml
echo "Bumping image version from $image_version to $version..."
sed -i.bak "s/^ tag: .\+\$/ tag: '$version'/" ci/helm-chart/values.yaml
}
function update_changelog() {
local date
date=$(printf '%(%Y-%m-%d)T\n' -1)
local link="https://github.com/coder/code-server/releases/tag/v$version"
sed -i.bak "s|## Unreleased|## Unreleased\n\n## [$version]($link) - $date|" CHANGELOG.md
}
function main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
local version=${VERSION:-$(git describe --tags)}
version="${version#v}"
declare -a steps
steps+=(
"Update Helm chart" "update_helm"
"Update changelog" "update_changelog"
)
# Even if a step failed, still output the last checkmark.
run-steps "${steps[@]}" || true
# This step is always manual.
echo "- [ ] https://github.com/coder/code-server-aur/pulls" >> .cache/checklist
}
main "$@"

162
ci/build/update-vscode.sh Executable file
View File

@@ -0,0 +1,162 @@
#!/usr/bin/env bash
set -Eeuo pipefail
function unapply_patches() {
local -i exit_code=0
quiet quilt pop -af 2>&1 || exit_code=$?
case $exit_code in
# Sucessfully unapplied.
0) ;;
# No more patches to unapply.
2) ;;
# Some error.
*) return $exit_code ;;
esac
}
function apply_patches() {
local -i exit_code=0
quiet quilt push -a 2>&1 || exit_code=$?
case $exit_code in
# Sucessfully applied.
0) ;;
# No more patches to apply.
2) ;;
# Some error.
*) return $exit_code ;;
esac
}
function update_vscode() {
pushd lib/vscode
if ! git checkout 2>&1 "$target_vscode_version" ; then
echo "$target_vscode_version does not exist locally, fetching..."
git fetch --all --prune --tags
echo "Checking out $target_vscode_version again..."
git checkout "$target_vscode_version"
fi
popd
}
function refresh_patches() {
local -i exit_code=0
while quiet quilt push 2>&1 ; ! (( exit_code=$? )) ; do
quilt refresh 2>&1
done
case $exit_code in
# No more patches to apply.
2) ;;
# Some error.
*) return $exit_code ;;
esac
}
function update_node() {
local node_version
node_version=$(cat .node-version)
local target_node_version
target_node_version=$(grep target lib/vscode/remote/.npmrc | awk -F= '{print $2}' | tr -d '"')
if [[ $node_version == "$target_node_version" ]] ; then
echo "Already set to $target_node_version"
else
echo "Updating from $node_version to $target_node_version..."
echo "$target_node_version" > .node-version
fi
}
function get-webview-script-hash() {
local html
html=$(<"$1")
local start_tag='<script async type="module">'
if [[ $file == */webWorkerExtensionHostIframe.html ]] ; then
start_tag='<script>'
fi
local end_tag="</script>"
html=${html##*"$start_tag"}
html=${html%%"$end_tag"*}
echo -n "$html" | openssl sha256 -binary | openssl base64
}
function delete_csp() {
quilt delete csp-hashes.diff || true
}
function update_csp() {
apply_patches
local files=(
./lib/vscode/src/vs/workbench/contrib/webview/browser/pre/index.html
./lib/vscode/src/vs/workbench/services/extensions/worker/webWorkerExtensionHostIframe.html
)
quilt new csp-hashes.diff
local file
for file in "${files[@]}" ; do
quilt add "$file"
local hash
hash=$(get-webview-script-hash "$file")
echo "Calculated hash as $hash"
# Use octothorpe as a delimiter since the hash may contain a slash.
sed -i.bak "s#'sha256-[^']\+'#'sha256-$hash'#" "$file"
done
quilt refresh
}
function add_changelog() {
local file=CHANGELOG.md
if grep --quiet "Code $target_vscode_version" "$file" ; then
echo "Changelog for $target_vscode_version already exists"
else
# TODO: This is not exactly robust. In particular, it needs to handle if
# there is already a "changed" section.
sed -i.bak "s/## Unreleased/## Unreleased\n\nCode v$target_vscode_version\n\n### Changed\n\n- Update to Code $target_vscode_version/" "$file"
fi
}
function main() {
cd "$(dirname "${0}")/../.."
source ./ci/lib.sh
declare -a steps
# Hashes are always regenerated to avoid having to resolve conflicts..
steps+=("Revert CSP hashes" "delete_csp")
# If version is not set, assume we are already at the target version and the
# user is just trying to resolve conflics.
local target_vscode_version
if [[ ${VERSION-} ]] ; then
# Removing patches only needs to be done locally; in CI we start from a
# fresh clone each time.
if [[ ! ${CI-} ]] ; then
steps+=("Unapplying patches" "unapply_patches")
fi
target_vscode_version="${VERSION#v}"
steps+=(
"Update Code to $target_vscode_version" "update_vscode"
"Refresh Code patches" "refresh_patches"
)
else
target_vscode_version="$(git -C lib/vscode describe --tags --exact-match)"
echo "Detected Code version $target_vscode_version"
fi
steps+=(
"Update Node version" "update_node"
"Regenerate CSP hashes" "update_csp"
"Add changelog note" "add_changelog"
)
# Even if a step failed, still output the last checkmark.
run-steps "${steps[@]}" || true
# This step is always manual.
echo "- [ ] Verify changelog" >> .cache/checklist
}
main "$@"

View File

@@ -15,9 +15,9 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes # This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version. # to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/) # Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 3.33.0 version: 3.51.0
# This is the version number of the application being deployed. This version number should be # This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to # incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using. # follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 4.109.5 appVersion: 4.136.1

View File

@@ -8,7 +8,9 @@ metadata:
annotations: {{- toYaml .Values.annotations | nindent 4 }} annotations: {{- toYaml .Values.annotations | nindent 4 }}
{{- end }} {{- end }}
spec: spec:
replicas: {{ .Values.replicaCount | default 1 }} {{- if ne .Values.replicaCount nil }}
replicas: {{ .Values.replicaCount }}
{{- end }}
strategy: strategy:
type: Recreate type: Recreate
selector: selector: