Skip to content
Luke Cheng edited this page Nov 12, 2023 · 5 revisions

Welcome to the doc-site-preview-in-pr wiki!

安装

  1. 在 repo 的设置 Action 里添加一个 secrets (一个 json 文件)
  2. 根目录加入在本地运行 firebase 命令之后的 firebase.json 文件
  3. workflow 文件中添加本 action,并配置:
- name: Stage site on Firebase
        if: ${{
          github.repository == 'chenglu/vigilant-octo-guacamole' &&
          github.event.pull_request.head.repo.full_name == github.repository &&
          github.event.pull_request.user.login != 'dependabot[bot]' }}
        uses: cfug/[email protected]
        with:
          repoToken: ${{ secrets.GITHUB_TOKEN }}
          firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_TMP_GUACAMOLE }}
          expires: 1d
          projectId: tmp-guacamole
          showDetailedUrls: true
          fileExtensionFilter: html
          originalPath: "_site/"
          replacedPath: "/"

其中:

  • github.repository 为本 action 安装的 repo 地址
  • expires 指的是构建的页面失效时间
  • projectId 是 Firebase 项目 ID

后面四个是本脚本的新增功能:

  • showDetailedUrls: true 是开启 false 是关闭
  • fileExtensionFilter: html 对哪些文件后缀进行展示,可以设定多个 "md, html, htm"
  • originalPath: "_site/"
  • replacedPath: "/"

本工具通过获取 PR 里文件更新的列表进行网页拼凑, 而我们的构建工具一般会将 md 文件放在类似 'src/'、'docs/' 目录下, 因此这两个参数是用于替换源码的位置以及其实际编译之后的 URL 位置。

比如 Flutter 文档的地址就是: src/cookbook/testing/widget/scrolling.md

实际构建出的页面地址是: flutter.cn/docs/cookbook/testing/widget/scrolling

因此这里需要填入

- originalPath: "src/"
- replacedPath: "docs/"

uses: cfug/[email protected] 指使用本脚本的 v0.1 版

... 发现了个 Bug ... 去修了先

Clone this wiki locally