Firebase Hosting
Firebase Hosting 通过全球 CDN 提供您的 docmd 静态站点,包含 SSL。它可以通过 Firebase CLI 或 GitHub Actions 干净地集成到 CI/CD 流水线中。
先决条件
安装 Firebase CLI:
npm install -g firebase-tools
firebase login
设置
构建您的站点:
npx @docmd/core build在项目根目录初始化 Firebase Hosting:
firebase init hosting出现提示时:
- 选择您的 Firebase 项目(或创建一个新项目)。
- 将 public 目录 设置为
site。 - 配置为单页应用:否(docmd 为每个页面生成单独的
index.html文件。无需 catch-all 重写)。 - 不要覆盖
site/index.html。
部署:
firebase deploy --only hosting
通过 GitHub Actions 实现 CI/CD
要在每次推送时自动部署,请创建 .github/workflows/firebase.yml:
.github/workflows/firebase.yml
name: Deploy to Firebase Hosting
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm install
- run: npx @docmd/core build
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
channelId: live
在您仓库的 Settings → Secrets 中使用 Firebase 服务账号 JSON 密钥设置 FIREBASE_SERVICE_ACCOUNT。
为什么使用
npx @docmd/core?在未全局安装 docmd 的 CI/CD 环境中,npx @docmd/core 会直接获取并运行该软件包。如果您的项目将 @docmd/core 列为 devDependency,则在 npm install 后运行 npx @docmd/core build 即可完美工作。
自定义域名
在 Firebase 控制台中的 Hosting → Add custom domain 下添加自定义域名。Firebase 自动配置 SSL。
将 docmd.config.json 中的 url 字段设置为与您的域名匹配。这确保规范标签和 sitemap 生成正确的绝对 URL。