本文永久链接:GitHub 私有库房敞开 GitHub Pages 的可行性方案

前言

GitHub 的私有库房敞开 GitHub Pages 需求晋级为 Pro 用户( $4/mon)。

对于仅仅需求私有库房敞开 GitHub Pages 的我来说,性价比是非常低的。

在看这篇文章的你,需求知道如何运用 Git 以及 GitHub 的一些基本操作。

创立 GitHub 账号(可选)

假如你不肯揭露 GitHub Pages 的静态资源文件,你需求创立一个新的 GitHub 账号,用来寄存 GitHub Pages 的静态资源文件。

Tips:新的 GitHub 账号的用户名尽可能的复杂,让人猜想不到。

创立揭露库房

创立一个用于寄存 GitHub Pages 静态资源文件的库房。

创立完库房后,并不需求自己手动敞开 GitHub Pages。

在揭露库房敞开 GitHub Pages

当一个库房创立 gh-pages 后,GitHub 默以为这个库房敞开 GitHub Pages。

有两种方法保护揭露库房的 GitHub Pages。

  • 手动保护

    每次把源代码构建成网站的静态资源后,手动履行 git push 把静态资源上传到揭露库房的 gh-pages 分支。

  • GitHub Actions

    直接在私有库房装备 Actions,每次 git push 后主动履行构建,并把构建得到的静态资源 git push 到揭露库房的 gh-pages 分支。

强烈推荐运用 GitHub Actions 。GitHub Actions 的装备文件运用 YAML 语法,装备项简略,一次装备,主动发布。

GitHub Actions

在私有库房中装备 Actions,把源代码构建成静态资源文件后 push 到揭露库房的 gh-pages 分支。

注意:假如揭露库房与私有库房不在同一个账号,需求把揭露库房账号的 Person access token 添加到私有库房的 Secrets 中。

GitHub 私有仓库免费开启 GitHub Pages 的可行性方案

Action 装备文件参阅:

<xxx> 代表必填项且需求按自己实际情况更改。

name: Deploy Site

on:
  push:
   branches: [ master ]

jobs:
  build:
   runs-on: ubuntu-latest
   steps:
    - name: Checkout
     uses: actions/checkout@v3
     with:
      persist-credentials: fasle # false 是用 personal token,true 是运用 GitHub token
      fetch-depth: 0

   # ... TODO Build your site

     # <work-dir> 静态资源所在的目录
   # <domain> 需求 github.io 绑定的域名
   # <username> git commit 用户名
   # <mail> git commit 邮箱
   # <message> git commit 的 message
   # <secrets_name> Secrets 称号
   # <github_username> github 的用户名(揭露库房)
   # <repo> 揭露库房名
    - name: Commit and Push
     working-directory: <work-dir>
     run: |
      echo "<domain>" > CNAME
      git init
      git checkout -b gh-pages
      git add -A
      git -c user.name='<username>' -c user.email='<mail>' commit -m '<message>' 
      git remote add origin https://${{secrets.<secrets_name>}}@github.com/<github_username>/<repo>.git
      git push origin gh-pages -f -q

参阅这个装备需求注意几点:

  1. 假如你的揭露库房与私有库房在同一个账号下:

    • 第 14 行的 false 改为 true
    • 第 35 行的 url 不需求 ${{secrets.<secrets_name>}}@ 这一段
  2. 假如你不需求 GitHub Pages 绑定域名,需求把第 30 行删去。

  3. 运用 Secrets 的优点是能够随时更换 PAT,且不会在装备文件中泄露敏感信息。

运用 Cloudflare 加快 + 隐藏实在地址(可选)

由于某些不行抗拒要素,在国内拜访 xxx.github.io 是一个很魔幻的工作,有时很慢,乃至无法打开。

对于这种情况,能够运用 Cloudflare 加快拜访。

同时,假如你不肯揭露 GitHub Pages 的静态资源文件,但敞开 GitHub Pages 后,运用 xxx.github.io 的方法拜访的话,新建 GitHub 账号也将毫无意义。即便装备域名后,虽然在一定程度上隐藏了实在地址,但仍能够经过扫描 DNS 记载,找到实在的 xxx.github.io 的地址。

走运的是,Cloudflare 在加快拜访的同时,也帮你隐藏了实在的地址。


GitHub 私有仓库免费开启 GitHub Pages 的可行性方案