mirror of
https://github.com/cdr/code-server.git
synced 2025-12-06 16:34:35 +01:00
* Fix incorrect nls.json fetch
When moving this out of the HTML I didn't remove {{BASE}}.
* Fix language package installation
Updates #2046.
|
||
|---|---|---|
| .. | ||
| build | ||
| dev | ||
| images | ||
| release-image | ||
| steps | ||
| lib.sh | ||
| README.md | ||
ci
This directory contains scripts used for code-server's continuous integration infrastructure.
Some of these scripts contain more detailed documentation and options in header comments.
Any file or directory in this subdirectory should be documented here.
- ./ci/lib.sh
- Contains code duplicated across these scripts.
Publishing a release
Make sure you have $GITHUB_TOKEN set and hub installed.
- Update the version of code-server and make a PR.
- Update in
package.json - Update in ./doc/install.md
- Update in
- GitHub actions will generate the
npm-package,release-packagesandrelease-imagesartifacts.- You do not have to wait for these.
- Run
yarn release:github-draftto create a GitHub draft release from the template with the updated version.- Summarize the major changes in the release notes and link to the relevant issues.
- Wait for the artifacts in step 2 to build.
- Run
yarn release:github-assetsto download therelease-packagesartifact.- It will upload them to the draft release.
- Run some basic sanity tests on one of the released packages.
- Especially make sure the terminal works fine.
- Make sure the github release tag is the commit with the artifacts. This is a bug in
hubwhere uploading assets in step 5 will break the tag. - Publish the release and merge the PR.
- CI will automatically grab the artifacts and then:
- Publish the NPM package from
npm-package. - Publish the Docker Hub image from
release-images.
- Publish the NPM package from
- CI will automatically grab the artifacts and then:
- Update the AUR package.
- Instructions on updating the AUR package are at cdr/code-server-aur.
- Wait for the npm package to be published.
- Update the homebrew package.
- Send a pull request to homebrew-core with the URL in the formula updated.
dev
This directory contains scripts used for the development of code-server.
- ./ci/dev/image
- See ./doc/CONTRIBUTING.md for docs on the development container.
- ./ci/dev/fmt.sh (
yarn fmt)- Runs formatters.
- ./ci/dev/lint.sh (
yarn lint)- Runs linters.
- ./ci/dev/test.sh (
yarn test)- Runs tests.
- ./ci/dev/ci.sh (
yarn ci)- Runs
yarn fmt,yarn lintandyarn test.
- Runs
- ./ci/dev/vscode.sh (
yarn vscode)- Ensures ./lib/vscode is cloned, patched and dependencies are installed.
- ./ci/dev/patch-vscode.sh (
yarn vscode:patch)- Applies ./ci/dev/vscode.patch to ./lib/vscode.
- ./ci/dev/diff-vscode.sh (
yarn vscode:diff)- Diffs ./lib/vscode into ./ci/dev/vscode.patch.
- ./ci/dev/vscode.patch
- Our patch of VS Code, see ./doc/CONTRIBUTING.md.
- Generate it with
yarn vscode:diffand apply withyarn vscode:patch.
- ./ci/dev/watch.ts (
yarn watch)- Starts a process to build and launch code-server and restart on any code changes.
- Example usage in ./doc/CONTRIBUTING.md.
build
This directory contains the scripts used to build and release code-server.
You can disable minification by setting MINIFY=.
- ./ci/build/build-code-server.sh (
yarn build)- Builds code-server into
./outand bundles the frontend into./dist.
- Builds code-server into
- ./ci/build/build-vscode.sh (
yarn build:vscode)- Builds vscode into
./lib/vscode/out-vscode.
- Builds vscode into
- ./ci/build/build-release.sh (
yarn release)- Bundles the output of the above two scripts into a single node module at
./release.
- Bundles the output of the above two scripts into a single node module at
- ./ci/build/build-standalone-release.sh (
yarn release:standalone)- Requires a node module already built into
./releasewith the above script. - Will build a standalone release with node and node_modules bundled into
./release-standalone.
- Requires a node module already built into
- ./ci/build/clean.sh (
yarn clean)- Removes all build artifacts.
- Will also
git reset --hard lib/vscode. - Useful to do a clean build.
- ./ci/build/code-server.sh
- Copied into standalone releases to run code-server with the bundled node binary.
- ./ci/build/test-standalone-release.sh (
yarn test:standalone-release)- Ensures code-server in the
./release-standalonedirectory works by installing an extension.
- Ensures code-server in the
- ./ci/build/build-packages.sh (
yarn package)- Packages
./release-standaloneinto a.tar.gzarchive in./release-packages. - If on linux, nfpm is used to generate
.deband.rpm.
- Packages
- ./ci/build/nfpm.yaml
- Used to configure nfpm to generate
.deband.rpm.
- Used to configure nfpm to generate
- ./ci/build/code-server-nfpm.sh
- Entrypoint script for code-server for
.deband.rpm.
- Entrypoint script for code-server for
- ./ci/build/code-server.service
- systemd user service packaged into the
.deband.rpm.
- systemd user service packaged into the
- ./ci/build/release-github-draft.sh (
yarn release:github-draft)- Uses hub to create a draft release with a template description.
- ./ci/build/release-github-assets.sh (
yarn release:github-assets)- Downloads the release-package artifacts for the current commit from CI.
- Uses hub to upload the artifacts to the release
specified in
package.json.
- ./ci/build/npm-postinstall.sh
- Post install script for the npm package.
- Bundled by
yarn release.
release-image
This directory contains the release docker container image.
- ./release-image/build.sh
- Builds the release container with the tag
codercom/code-server-$ARCH:$VERSION. - Assumes debian releases are ready in
./release-packages.
- Builds the release container with the tag
images
This directory contains the images for CI.
steps
This directory contains the scripts used in CI. Helps avoid clobbering the CI configuration.
- ./steps/fmt.sh
- Runs
yarn fmtafter ensuring VS Code is patched.
- Runs
- ./steps/lint.sh
- Runs
yarn lintafter ensuring VS Code is patched.
- Runs
- ./steps/test.sh
- Runs
yarn testafter ensuring VS Code is patched.
- Runs
- ./steps/release.sh
- Runs the release process.
- Generates the npm package at
./release.
- ./steps/release-packages.sh
- Takes the output of the previous script and generates a standalone release and
release packages into
./release-packages.
- Takes the output of the previous script and generates a standalone release and
release packages into
- ./steps/publish-npm.sh
- Grabs the
npm-packagerelease artifact for the current commit and publishes it on npm.
- Grabs the
- ./steps/build-docker-image.sh
- Builds the docker image and then saves it into
./release-images/code-server-$ARCH-$VERSION.tar.
- Builds the docker image and then saves it into
- ./steps/push-docker-manifest.sh
- Loads all images in
./release-imagesand then builds and pushes a multi architecture docker manifest for the amd64 and arm64 images tocodercom/code-server:$VERSIONandcodercom/code-server:latest.
- Loads all images in