mirror of
https://github.com/coder/code-server.git
synced 2026-09-09 11:27:24 +02:00
Compare commits
176 Commits
5fe286e8d5
...
v4.136.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d5f383f30 | ||
|
|
c9b1fa2e16 | ||
|
|
00672a5522 | ||
|
|
62284ed549 | ||
|
|
11699e6cd7 | ||
|
|
2b2f8b3d5c | ||
|
|
de89acbcdc | ||
|
|
e08e907889 | ||
|
|
92f44d9c7b | ||
|
|
88c2b7432e | ||
|
|
4cb856c475 | ||
|
|
2d5dbf0b77 | ||
|
|
7833136337 | ||
|
|
1735f6d3fb | ||
|
|
0a7b4b1e16 | ||
|
|
fa4426393e | ||
|
|
04ce2301a7 | ||
|
|
2edeb1c991 | ||
|
|
02badb2056 | ||
|
|
fb43d02d10 | ||
|
|
b9653442b3 | ||
|
|
30852bb006 | ||
|
|
f69d40ce6f | ||
|
|
876304f95f | ||
|
|
c22dc74d53 | ||
|
|
d2f7a12252 | ||
|
|
596dbf3416 | ||
|
|
51f90a376b | ||
|
|
29785ddfba | ||
|
|
313bf0359b | ||
|
|
41cbd28c44 | ||
|
|
208c81a072 | ||
|
|
f836314954 | ||
|
|
1a370bb606 | ||
|
|
7ff34158a1 | ||
|
|
2a1c2637cd | ||
|
|
4f73664880 | ||
|
|
eb4ba56acb | ||
|
|
924bfac9fd | ||
|
|
4cf9c11e3f | ||
|
|
a3fc2899bd | ||
|
|
b95360f302 | ||
|
|
9edf867909 | ||
|
|
f3aca85d02 | ||
|
|
14bdb36f92 | ||
|
|
197ef3e8da | ||
|
|
5cf68f6241 | ||
|
|
1dabd152be | ||
|
|
3ed5f97448 | ||
|
|
b99ce9a992 | ||
|
|
c2337fec2d | ||
|
|
1e2b734be8 | ||
|
|
31e6279646 | ||
|
|
227d08660b | ||
|
|
22b0a3eeab | ||
|
|
77baee7fe0 | ||
|
|
3e76a04b1b | ||
|
|
421e7eb084 | ||
|
|
cb22f74650 | ||
|
|
d103d5057a | ||
|
|
aed61bf6ab | ||
|
|
1e160477be | ||
|
|
1e6ed874e3 | ||
|
|
dd48f7753b | ||
|
|
2c06497ca9 | ||
|
|
9ccf763b02 | ||
|
|
40b39293fa | ||
|
|
02e28cd254 | ||
|
|
fade53fcaf | ||
|
|
804ba5bfce | ||
|
|
9545b26036 | ||
|
|
2ef530ce11 | ||
|
|
8009d3c360 | ||
|
|
4ae1fc202e | ||
|
|
a59c3ab990 | ||
|
|
a7f457046f | ||
|
|
25e847dc94 | ||
|
|
e1c839fb1d | ||
|
|
7dfd68589a | ||
|
|
72086edbdb | ||
|
|
7617ab2b92 | ||
|
|
d31d0347cf | ||
|
|
5dca609c2a | ||
|
|
87ac56bf8c | ||
|
|
a056406eff | ||
|
|
24811a6269 | ||
|
|
53ed1e30d2 | ||
|
|
7393d50b09 | ||
|
|
f7663cc34c | ||
|
|
71ba0191f2 | ||
|
|
19be49ebe4 | ||
|
|
9fe7eb79d5 | ||
|
|
1ccd4f04d2 | ||
|
|
364cf99338 | ||
|
|
92a7dce46f | ||
|
|
d0d53d924e | ||
|
|
77d880d0c3 | ||
|
|
559d73a636 | ||
|
|
6fd40c04c7 | ||
|
|
63c071959f | ||
|
|
7be257b252 | ||
|
|
923cb753b8 | ||
|
|
6cad75773e | ||
|
|
cb2548f989 | ||
|
|
f87e243225 | ||
|
|
d98fcd3598 | ||
|
|
93d3ee8ab1 | ||
|
|
030bdcf771 | ||
|
|
4a50b99b67 | ||
|
|
382aa3ba87 | ||
|
|
2243efb2e6 | ||
|
|
477c0b11b8 | ||
|
|
2396092ae9 | ||
|
|
4f9c23893a | ||
|
|
62e5c450f7 | ||
|
|
265713561c | ||
|
|
c9faf343ba | ||
|
|
99bfbd5931 | ||
|
|
238769e535 | ||
|
|
bf61384523 | ||
|
|
2114937ec6 | ||
|
|
cd1586214e | ||
|
|
51bc3c0f09 | ||
|
|
3c3f87a3d2 | ||
|
|
174b7757a5 | ||
|
|
359b40d422 | ||
|
|
ef7ea3e515 | ||
|
|
190b09cc76 | ||
|
|
53d981a724 | ||
|
|
89ca02c1f7 | ||
|
|
2fafe8771d | ||
|
|
41c9ed499b | ||
|
|
1605d68709 | ||
|
|
93ce398e28 | ||
|
|
62a552d896 | ||
|
|
bd41dca064 | ||
|
|
3dbddaaadf | ||
|
|
58491f317f | ||
|
|
9527b7879f | ||
|
|
0059d37db5 | ||
|
|
58aedd0ebc | ||
|
|
7056332f0b | ||
|
|
672b4edfbc | ||
|
|
442db744d5 | ||
|
|
871f1d9048 | ||
|
|
f6bd6aa1a4 | ||
|
|
2787a5ca5d | ||
|
|
dbd25c945c | ||
|
|
02f4d6ea0b | ||
|
|
80a642f511 | ||
|
|
ddeb0a3de0 | ||
|
|
22ec1ea65b | ||
|
|
e0b100ee31 | ||
|
|
5f7c23bd8e | ||
|
|
367dcda592 | ||
|
|
6ecac88f4d | ||
|
|
cc8ac4f40f | ||
|
|
a12c89658c | ||
|
|
4b4903e809 | ||
|
|
be537ce77a | ||
|
|
cc8f0b7348 | ||
|
|
7cc2270228 | ||
|
|
34ac5f47de | ||
|
|
523c0cbaa7 | ||
|
|
05f481d2f0 | ||
|
|
c66372452f | ||
|
|
aee8825558 | ||
|
|
f612511974 | ||
|
|
287f8ecd56 | ||
|
|
1c6fb2dc20 | ||
|
|
f04dc2cabd | ||
|
|
4af6408e39 | ||
|
|
1fa5d5084b | ||
|
|
d74b002969 | ||
|
|
394c6fc3f9 | ||
|
|
0b15b91dc1 |
6
.github/dependabot.yaml
vendored
6
.github/dependabot.yaml
vendored
@@ -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
|
||||||
|
|||||||
80
.github/workflows/build.yaml
vendored
80
.github/workflows/build.yaml
vendored
@@ -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
|
||||||
|
|||||||
6
.github/workflows/installer.yaml
vendored
6
.github/workflows/installer.yaml
vendored
@@ -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
|
||||||
|
|||||||
68
.github/workflows/publish.yaml
vendored
68
.github/workflows/publish.yaml
vendored
@@ -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"
|
||||||
|
|||||||
64
.github/workflows/release.yaml
vendored
64
.github/workflows/release.yaml
vendored
@@ -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 }}
|
||||||
|
|||||||
4
.github/workflows/scripts.yaml
vendored
4
.github/workflows/scripts.yaml
vendored
@@ -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
|
||||||
|
|||||||
18
.github/workflows/security.yaml
vendored
18
.github/workflows/security.yaml
vendored
@@ -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
|
||||||
|
|||||||
8
.github/workflows/trivy-docker.yaml
vendored
8
.github/workflows/trivy-docker.yaml
vendored
@@ -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
72
.github/workflows/update.yaml
vendored
Normal 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
1
.gitignore
vendored
@@ -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-*
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
22.22.1
|
24.18.1
|
||||||
|
|||||||
248
CHANGELOG.md
248
CHANGELOG.md
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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
96
ci/build/update-repo.sh
Executable 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
162
ci/build/update-vscode.sh
Executable 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 "$@"
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||