本页面文档介绍了 code-server 构建过程中创建的不同类型的发布包、它们的生成方式以及内容。它解释了包创建管道,展示了 code-server 如何从源代码转换为各种平台和包格式的可分发构件。
有关创建这些包的 CI/CD 管道信息,请参阅 CI/CD 管道。有关发布到 NPM 的详细信息,请参阅 NPM 发布。
code-server 以多种包格式分发,以支持不同的安装方法和平台。
| 包类型 | 文件格式 | 描述 |
|---|---|---|
| 档案 | .tar.gz | 所有受支持平台(Linux、macOS、Windows)的压缩存档。 |
| Debian 包 | .deb | 适用于基于 Debian 的 Linux 发行版的原生包。 |
| RPM 包 | .rpm | 适用于基于 Red Hat 的 Linux 发行版的原生包。 |
| NPM 包 | 不适用 | 发布到 NPM 注册表的 JavaScript 包。 |
| Docker 镜像 | 不适用 | 发布到 Docker Hub 和 GitHub Container Registry 的容器镜像。 |
发布过程按特定顺序创建这些包,每个包都建立在先前步骤的基础上。
来源:ci/build/build-release.sh ci/build/build-standalone-release.sh ci/build/build-packages.sh
发布包的创建遵循跨多个脚本的特定工作流。
来源:ci/build/build-release.sh ci/build/build-standalone-release.sh ci/build/build-packages.sh
第一步创建了一个通用 NPM 包,作为所有其他包的基础。此过程由 build-release.sh 处理。
关键步骤
package.json。来源:ci/build/build-release.sh16-36 ci/build/build-release.sh104-134
单独发布会添加 Node.js 二进制文件和启动脚本,使包能够自包含。此过程由 build-standalone-release.sh 处理。
关键步骤
release-standalone)。lib/node。bin/code-server。--omit=dev 标志安装 NPM 依赖项。来源:ci/build/build-standalone-release.sh8-35 ci/build/code-server.sh1-29
最后一步从单独发布的版本创建特定于平台的包。此过程由 build-packages.sh 处理。
关键步骤
.tar.gz 存档。.deb 和 .rpm 包。release-packages 目录中。来源:ci/build/build-packages.sh9-70 ci/build/nfpm.yaml1-26
所有包都包含相似的基础结构,具体差异取决于包类型和目标平台。
来源:ci/build/build-release.sh36-65 ci/build/build-standalone-release.sh13-34
NPM 包包含:
out/ 目录中的已编译 JavaScript 代码。lib/vscode 中的 VS Code Web 客户端文件。src/browser 中的 HTML、CSS 和媒体资源。NPM 包不包含 Node.js 二进制文件,因为它依赖于系统的 Node 安装。
来源:ci/build/build-release.sh36-65 ci/build/npm-postinstall.sh1-160
单独发布包包含 NPM 包的所有内容,外加:
lib/node)。bin/code-server)。node_modules 中安装的所有运行时依赖项。来源:ci/build/build-standalone-release.sh13-34 ci/build/code-server.sh1-29
Linux 包具有不同的文件结构,针对系统范围内的安装进行了优化。
/usr/bin/code-server。/usr/lib/code-server/。/usr/lib/systemd/system/code-server@.service。/usr/lib/systemd/user/code-server.service。来源:ci/build/nfpm.yaml14-25 ci/build/code-server-user.service1-12
安装包时,会运行一个安装后脚本来完成设置。该脚本:
脚本会检测安装时使用的是 npm 还是 yarn,并据此进行调整。
来源:ci/build/npm-postinstall.sh68-116 ci/build/npm-postinstall.sh118-139 ci/build/npm-postinstall.sh141-158
包遵循一致的命名模式:
code-server-{version}-{os}-{arch}.tar.gzcode-server_{version}_{arch}.debcode-server-{version}-{arch}.rpm其中
{version} - 语义化版本(例如,4.9.1)。{os} - 操作系统(linux, darwin, win32){arch} - CPU 架构(amd64, arm64, armv7l)来源: ci/build/build-packages.sh29-35 ci/build/build-packages.sh49-67
创建的软件包通过多个渠道分发
来源: ci/build/build-packages.sh39-47
发布系统旨在为所有支持的平台和架构创建软件包
| 操作系统 | 架构 | 包类型 |
|---|---|---|
| Linux | amd64, arm64, armv7l | .tar.gz, .deb, .rpm |
| macOS (Darwin) | amd64, arm64 | .tar.gz |
| Windows | amd64 | .tar.gz |
来源: ci/build/build-packages.sh14-18 ci/build/build-packages.sh49-67
刷新此 Wiki
最后索引时间2025 年 4 月 18 日 (175729)