自动部署
自动部署功能可以实现当您推送代码到 GitHub、GitLab 或码云 Gitee 时,自动部署您的网站到热铁盒网页托管。这使您可以在热铁盒网页托管使用 Git 和任何现代前端工具和框架,如 npm、React、Vue 等。
API 密钥
开始之前,您需要一个 API 密钥。您可以在网页托管管理页面的右上角菜单中找到「API 密钥」选项。点击「新密钥」按钮,然后将生成的 API 密钥复制到剪贴板。生成的 API 密钥只会显示一次,所以请务必保存好。API 密钥等同于您的密码,不要泄露给他人。
参数
热铁盒网页托管助手的自动部署工具需要以下三个参数:
site
:要部署的网站域名。- 如果您使用的是热铁盒提供的域名,那么这个参数是域名里的子域名部分。例如,如果您的域名是
example.rth5.com
,那么这个参数的值应该是example
。 - 如果您使用的是自己的域名,那么这个参数的值就是您的完整域名。
- 如果您使用的是热铁盒提供的域名,那么这个参数是域名里的子域名部分。例如,如果您的域名是
build
:构建命令。这个命令会在部署之前执行。- 如果您的网站是纯 HTML 的原生页面,不需要构建,那么您可以忽略这个参数。
- 如果您的网站是 React 或 Vue 等现代前端框架构建的,那么这个参数是您在
package.json
中的scripts
字段里的构建命令名称。例如,如果您通过npm run build
构建您的网站,那么这个参数的值就是build
。 - 如果定义了 build 参数,程序会先自动执行
npm install
安装依赖项,然后再执行构建命令;如果构建命令执行失败,部署会被取消。
outdir
:构建输出目录。这个目录会被上传到热铁盒网页托管。- 如果您的网站是纯 HTML 的原生页面,那么这个参数是您的网站文件夹的路径。如果您想上传仓库根目录下的所有文件,那么您可以将这个参数的值设置为一个点
.
,表示当前目录。 - 如果您的网站是 React 或 Vue 等现代前端框架构建的,那么这个参数是构建命令生成的文件夹的路径。例如,如果您的构建命令生成的文件夹是
dist
,那么这个参数的值就是dist
。 - 这个参数必须使用相对路径,不能使用绝对路径。任何以
/
开头的路径都是绝对路径。在自动部署时,相对路径是相对于仓库根目录的。
- 如果您的网站是纯 HTML 的原生页面,那么这个参数是您的网站文件夹的路径。如果您想上传仓库根目录下的所有文件,那么您可以将这个参数的值设置为一个点
配置 GitHub 自动部署
第一步:设置 API 密钥
在仓库的设置页面中,点击「Secrets and variables」>「Actions」,然后点击「New repository secret」。在「Name」字段中输入 RTH_API_KEY
,在「Secret」字段中粘贴您的 API 密钥,然后点击「Add secret」,API 密钥就设置完成了。
第二步:创建工作流程文件
在仓库的 .github/workflows
目录下创建一个新的 YAML 文件,例如 deploy.yml
,然后将以下内容复制到文件中:
name: Deploy to Retinbox Web Hosting
on: push
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: shangzheny/rth-host-helper:latest
steps:
- name: Deploy to Retinbox Web Hosting
uses: rthsoftware/host-auto-deploy@master
env:
RTH_API_KEY: ${{ secrets.RTH_API_KEY }}
with:
site: "example" # 修改 example 为您的网站名称
build: "build" # 修改 build 为您的构建命令
outdir: "dist" # 修改 dist 为您的构建输出目录
请按照注释修改文件中的参数。
到此,您的网站就可以自动部署到热铁盒网页托管了。当您推送代码到仓库时,GitHub 就会自动执行部署工作流程。
配置 GitLab 自动部署
第一步:设置 API 密钥
在项目的设置页面中,点击「CI/CD」>「变量」,然后点击「添加变量」。在「键」字段中输入 RTH_API_KEY
,在「值」字段中粘贴您的 API 密钥,然后点击「添加变量」,API 密钥就设置完成了。
第二步:创建 CI/CD 配置文件
在项目的根目录下创建一个名为 .gitlab-ci.yml
的文件,然后将以下内容复制到文件中:
deploy:
stage: deploy
image: shangzheny/rth-host-helper:latest
script:
- npx -y rth-host-helper@latest --site example --build build --outdir dist # 修改 example、build 和 dist 为您的网站名称、构建命令和构建输出目录
请按照注释修改文件中的参数。
到此,您的网站就可以自动部署到热铁盒网页托管了。当您推送代码到仓库时,GitLab 就会自动执行部署工作流程。
配置码云 Gitee 自动部署
第一步:开通 Gitee Go 服务
在项目页面中,点击「流水线」标签页,然后点击「开通 Gitee Go」按钮。询问是否创建默认流水线时,选择「不创建」。
第二步:设置 API 密钥
在项目页面中,点击「流水线」>「通用变量」标签页,然后点击「添加变量」。在「变量名称」字段中输入 RTH_API_KEY
,「类型」选择「文本」,再在「默认值」字段中粘贴您的 API 密钥,然后点击「确认」,API 密钥就设置完成了。
第三步:创建工作流程文件
在仓库的 .workflow
目录下创建一个新的 YAML 文件,例如 deploy.yml
,然后将以下内容复制到文件中:
version: '1.0'
name: deploy
displayName: 部署到热铁盒网页托管
triggers:
trigger: auto
push:
branches:
prefix:
- ''
variables:
global:
- RTH_API_KEY
stages:
- name: deploy
displayName: 部署
strategy: naturally
trigger: auto
steps:
- step: build@nodejs
name: deploy
displayName: 部署到热铁盒网页托管
nodeVersion: 20.10.0
commands:
- npm config set registry https://registry.npmmirror.com
- npm install -g rth-host-helper@latest --ignore-scripts
- rth-host-helper --site example --build build --outdir dist # 修改 example、build 和 dist 为您的网站名称、构建命令和构建输出目录
strategy: {}
请按照注释修改文件中的参数。
到此,您的网站就可以自动部署到热铁盒网页托管了。当您推送代码到仓库时,码云 Gitee 就会自动执行部署工作流程。
其他 Git 仓库托管服务
如果您使用的是其他 Git 仓库托管服务,只要您的服务商支持 Node.js 的持续集成,理论上您就可以参考上面的配置文件,在持续集成中调用 rth-host-helper
来实现自动部署。
本地部署
如果您不使用 Git,您也可以在本地使用热铁盒网页托管助手来一键部署网站。
安装或更新
由于 npm 默认的镜像源在国外,在中国大陆地区可能无法访问或访问比较缓慢。建议您执行下面的这行命令将 npm 的镜像源设置为国内的镜像源。
npm config set registry https://registry.npmmirror.com
打开终端,输入下面的这行命令,然后按回车键即可安装或更新热铁盒网页托管助手。
sudo npm install -g rth-host-helper@latest --ignore-scripts
如果您使用的是 Windows,请移除命令中的 sudo
。
带有 --ignore-scripts
参数可以避免因为缺少依赖项而安装失败,但同时将不会安装对热铁盒网页托管的终端功能的支持。
设置 API 密钥
您需要设置环境变量 RTH_API_KEY
,将您的 API 密钥作为值。
如果您使用的是 Windows 命令提示符,您可以执行以下命令来设置环境变量:
set RTH_API_KEY=your-api-key
如果您使用的是 Windows PowerShell,您可以执行以下命令来设置环境变量:
$env:RTH_API_KEY="your-api-key"
如果您使用的是 macOS 或 Linux,您可以在终端中执行以下命令来设置环境变量:
export RTH_API_KEY=your-api-key
请将 your-api-key
替换为您的 API 密钥。
在终端中设置的环境变量只在当前会话中有效。如果您希望永久保存这个环境变量,请查阅相关操作系统的文档以了解如何设置永久环境变量。
部署网站
在完成上述配置后,在网站的根目录下执行以下命令即可一键部署网站:
rth-host-helper --site example --build build --outdir dist
请将 example
、build
和 dist
替换为您的网站名称、构建命令和构建输出目录。