This directory contains scripts used for code-server's continuous integration infrastructure.
Many of these scripts contain more detailed documentation and options in comments at the top.
Any file and directory added into this tree should be documented here.
- Change the version of code-server in
package.jsonand push this commit. - CI will run and generate an NPM package and release packages that you can download as artifacts on Github Actions.
- Create a new draft release with the built release packages.
- Run some basic sanity tests on one of the released packages.
- Publish.
- Download the built npm package and publish it.
- Place the debian releases into
./release-packagesand then push the docker image with./ci/release-container/push.sh.- This will need to be ran on an ARM64 instance as well.
- At some point we need to automate this.
This directory contains scripts used for the development of code-server.
- ./dev/container
- See CONTRIBUTING.md for docs on the development container
- ./dev/ci.sh (
yarn ci)- Runs formatters, linters and tests
- ./dev/fmt.sh (
yarn fmt)- Runs formatters
- ./dev/lint.sh (
yarn lint)- Runs linters
- ./dev/test.sh (
yarn test)- Runs tests
- ./dev/vscode.sh (
yarn vscode)- Ensures
lib/vscodeis cloned, patched and dependencies are installed
- Ensures
- ./dev/vscode.patch
- Our patch of VS Code to enable remote browser access
- Generate it with
yarn vscode:diffand apply withyarn vscode:patch
- ./dev/watch.ts (
yarn watch)- Starts a process to build and launch code-server and restart on any code changes
- Example usage in CONTRIBUTING.md
This directory contains the scripts used to build code-server.
You can disable minification by setting MINIFY=.
- ./lib.sh
- Contains code duplicated across these scripts.
- ./build/build-code-server.sh (
yarn build)- Builds code-server into ./out and bundles the frontend into ./dist.
- ./build/build-vscode.sh (
yarn build:vscode)- Builds vscode into ./lib/vscode/out-vscode.
- ./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
- ./build/build-static-release.sh (
yarn release:static)- Requires a release already built in
./release. - Will build a static release with node and node_modules into
./release-static
- Requires a release already built in
- ./build/clean.sh (
yarn clean)- Removes all git ignored files like build artifacts.
- Will also
git reset --hard lib/vscode - Useful to do a clean build.
- ./build/code-server.sh
- Copied into static releases to run code-server with the bundled node binary.
- ./build/test-release.sh
- Ensures code-server in the
./release-staticdirectory runs
- Ensures code-server in the
- ./build/build-packages.sh (
yarn package)- Packages
./release-staticinto an archive in./release-packages - If on linux, nfpm is used to generate .deb and .rpm
- Packages
- ./build/nfpm.yaml
- Used to configure nfpm to generate .deb and .rpm
- ./build/code-server-nfpm.sh
- Entrypoint script for code-server for .deb and .rpm
This directory contains the release docker container.
This directory contains the container for CI.
This directory contains a few scripts used in CI. Just helps avoid clobbering .travis.yml.
- ./steps/test.sh
- Runs
yarn ciafter ensuring VS Code is patched
- Runs
- ./steps/release.sh
- Runs the full release process
- Generates the npm package at
./release
- ./steps/static-release.sh
- Takes the output of the previous script and generates a static release and packages