code-server/ci/README.md

6.7 KiB

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

  1. Run yarn release:prep and type in the new version i.e. 3.8.1
  2. GitHub actions will generate the npm-package, release-packages and release-images artifacts.
    1. You do not have to wait for these.
  3. Run yarn release:github-draft to create a GitHub draft release from the template with the updated version.
    1. Summarize the major changes in the release notes and link to the relevant issues.
    2. Change the @ to target the version branch. Example: v3.9.0 @ Target: v3.9.0
  4. Wait for the artifacts in step 2 to build.
  5. Run yarn release:github-assets to download the release-packages artifact.
    • It will upload them to the draft release.
  6. Run some basic sanity tests on one of the released packages.
    • Especially make sure the terminal works fine.
  7. Publish the release and merge the PR.
    1. CI will automatically grab the artifacts and then:
      1. Publish the NPM package from npm-package.
      2. Publish the Docker Hub image from release-images.
  8. Update the AUR package.
  9. Wait for the npm package to be published.

dev

This directory contains scripts used for the development of code-server.

build

This directory contains the scripts used to build and release code-server. You can disable minification by setting MINIFY=.

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 with docker buildx.
    • Assumes debian releases are ready in ./release-packages.

images

This directory contains the images for CI.

steps

This directory contains the scripts used in CI. Helps avoid clobbering the CI configuration.