本文永久链接: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 中。
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
参阅这个装备需求注意几点:
-
假如你的揭露库房与私有库房在同一个账号下:
- 第 14 行的 false 改为 true
- 第 35 行的 url 不需求
${{secrets.<secrets_name>}}@
这一段
-
假如你不需求 GitHub Pages 绑定域名,需求把第 30 行删去。
-
运用
Secrets
的优点是能够随时更换 PAT,且不会在装备文件中泄露敏感信息。
运用 Cloudflare 加快 + 隐藏实在地址(可选)
由于某些不行抗拒要素,在国内拜访 xxx.github.io
是一个很魔幻的工作,有时很慢,乃至无法打开。
对于这种情况,能够运用 Cloudflare 加快拜访。
同时,假如你不肯揭露 GitHub Pages 的静态资源文件,但敞开 GitHub Pages 后,运用 xxx.github.io
的方法拜访的话,新建 GitHub 账号也将毫无意义。即便装备域名后,虽然在一定程度上隐藏了实在地址,但仍能够经过扫描 DNS 记载,找到实在的 xxx.github.io
的地址。
走运的是,Cloudflare 在加快拜访的同时,也帮你隐藏了实在的地址。