github pages 的配置,两个快速部署的方法

虽然之前也部署过几个github pages,因为通常我们会采取一些静态建站工具来生成我们的github pages,那些工具的文档都会提供解决方案。

但是这次我还是踩坑了。

01.创建gh-pages分支

需要创建一个gh-pages的分支(可以用gh-pages这个命令行,自动创建分支部署本地的目录)

然后我们在仓库的setting->Pages

就可以调整gh pages的配置,可以采用分支部署,切换到gh-pages

02.非根目录部署

github pages 开启后,如果我们创建一个<USERNAME>.github.io的仓库的时候,默认的地址是 https://<USERNAME>.github.io/

但是当你其他仓库要用github pages的时候,默认就是 https://<USERNAME>.github.io/<REPO>/

所以我们需要配置一下,把起始路由和静态资源的起始路径调整

我们把base和publicPath 都设置成 /<REPO>/就可以了。

还有一个选择就是你有一个域名,gh pages也是能自定义域名的。。。

03.部署工具

gh-pages

这是一个可以帮你发布gh-pages的命令行工具。

因为就是从你本地调用命令安装的,所以也不会有权限的问题。。。

npm install gh-pages --save-dev

我们执行下面的命令就能把指定目录推送到仓库的gh-pages分支

gh-pages -d dist

github workflow

通过 github workflow,可以实现自动化流水线。

使用社区的各种actions可以帮我们实现重复的自动化需求。

比如部署gh-pages,我们可以设置触发时机为push到主分支的时候触发,这样我们每次合并到主分支,就会自动触发部署了。

actions 权限设置

actions 要配置相应的权限,比如默认的权限是只能读仓库的内容,而不能写内容。

这个权限是可以进行详细的设置的,也可以写在workflow的配置文件里。

但是目前我只需要开启读写权限

setting ,Actions,general,然后我们找到workflow权限修改就可以了。

node_modules缓存设置

npm install 有可能很慢,或者rust的项目编译在没有缓存的情况下是很慢的。

社区提供了一些可以缓存每次依赖的actions

比如我这里用到了pnpm/action-setup@v2这个action

pnpm作为包管理器,install速度比npm快。也能节省我的本地磁盘空间。。。

这个actions也会同时帮你做好缓存。

配置文件示例

创建gh-pages.yml到.github/workflows目录,这样这个目录推送到github,就会自动执行里面的配置。。

name: github pages

on:
  push:
    branches:
      - main 
      
permissions:
  contents: write

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: pnpm/action-setup@v2
        with:
          version: 8.6.2
      - uses: actions/setup-node@v3
        with:
          node-version: 16
          cache: 'pnpm'
      - run: pnpm install --frozen-lockfile
      - run: pnpm build
      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./dist

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。