da4de439e0
This uses the current dev build by default but can be overidden with CODE_SERVER_TEST_ENTRY (for example to test a release or some other version). Each instance has a separate state directory. This should make parallelization work. This also means you are no longer required to specify the password and address yourself (or the extension directory once we add a test extension). `yarn test:e2e` should just work as-is. Lastly, it means the tests are no longer subject to yarn watch randomly restarting. |
||
---|---|---|
.. | ||
build | ||
dev | ||
helm-chart | ||
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.
dev
This directory contains scripts used for the development of code-server.
- ./ci/dev/image
- See ./docs/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-unit.sh (
yarn test:unit
)- Runs unit tests.
- ./ci/dev/test-e2e.sh (
yarn test:e2e
)- Runs end-to-end tests.
- ./ci/dev/ci.sh (
yarn ci
)- Runs
yarn fmt
,yarn lint
andyarn test
.
- Runs
- ./ci/dev/watch.ts (
yarn watch
)- Starts a process to build and launch code-server and restart on any code changes.
- Example usage in ./docs/CONTRIBUTING.md.
- ./ci/dev/gen_icons.sh (
yarn icons
)- Generates the various icons from a single
.svg
favicon insrc/browser/media/favicon.svg
. - Requires imagemagick
- Generates the various icons from a single
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
./out
and 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
./release
with 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.
- 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-standalone
directory works by installing an extension.
- Ensures code-server in the
- ./ci/build/build-packages.sh (
yarn package
)- Packages
./release-standalone
into a.tar.gz
archive in./release-packages
. - If on linux, nfpm is used to generate
.deb
and.rpm
.
- Packages
- ./ci/build/nfpm.yaml
- Used to configure nfpm to generate
.deb
and.rpm
.
- Used to configure nfpm to generate
- ./ci/build/code-server-nfpm.sh
- Entrypoint script for code-server for
.deb
and.rpm
.
- Entrypoint script for code-server for
- ./ci/build/code-server.service
- systemd user service packaged into the
.deb
and.rpm
.
- systemd user service packaged into the
- ./ci/build/release-github-draft.sh (
yarn release:github-draft
)- Uses gh 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 gh 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.
- ./ci/steps/build-docker-image.sh
- Builds the release containers with tags
codercom/code-server-$ARCH:$VERSION
for amd64 and arm64 withdocker buildx
. - Assumes debian releases are ready in
./release-packages
.
- Builds the release containers with tags
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 fmt
.
- Runs
- ./steps/lint.sh
- Runs
yarn lint
.
- Runs
- ./steps/test-unit.sh
- Runs
yarn test:unit
.
- Runs
- ./steps/test-e2e.sh
- Runs
yarn test:e2e
.
- 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-package
release 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-images
and then builds and pushes a multi architecture docker manifest for the amd64 and arm64 images tocodercom/code-server:$VERSION
andcodercom/code-server:latest
.
- Loads all images in