让博客「同时」部署到 码云 和 Vercel。 本来是一整篇文章的,但是因为其中的部分可能对别人有用所以单独分离写了一篇文章《Gridea 临时支持 Gitee 的办法》。 具体实现方法看上面提到的文章,我简述一下不同之处
国际节点我选的是 Vercel ,通过导入 Github的仓库来部署网站,与仓库同步更新,与 Github Pages不同,有世界各地的 CDN 支持,包括亚洲也很有几个CDN边缘服务器(台湾、香港、日本、韩国等),速度没得说。
国内节点我选的是 Gitee,虽然 Coding 挺不错(属于腾讯),但是提供的二级域名是随机的长字符串,不方便记忆且我自己没有买域名的打算,再加上双方的免费版我测出的 ip不同,码云的来自上海,Coding 来自新加坡
我目前正在用的博客系统是 Gridea,不支持直接部署到Gitee,也不支持同时部署到两个平台,最关键的一点是 Gridea 要填自己的博客网址,也就是说 我同步到 Vercel(www.1inn.top)上后,还得本地把网站文件中所有www.1inn.top
替换成dyxang.gitee.io
,再同步到 Gitee(dyxang.gitee.io)。所以在一次次这种繁琐的操作后,我烦躁了,然后花了半天时间完成解决办法。
具体流程如下
我的 Github Action 文件:
name: 博客节点同步
on: [push]
//如要使用请移除注释
jobs:
job1:
name: 先把国际节点的网址替换成国内节点的网址
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Find and Replace
uses: jacobtomlinson/gha-find-replace@master
with:
find: "www.1inn.top"
replace: "dyxang.gitee.io"
//这里使用的是全文替换的 Action
job2:
needs: [job1]
//needs 的意思是当 job1 完成后再进行 job2,不加 needs 则三个任务同时进行,会出错/超时 等等问题
name: 把该仓库同步到 Gitee(使用白名单只同步这个仓库)
runs-on: ubuntu-latest
steps:
- name: Checkout source codes
uses: actions/checkout@v1
- name: Mirror Github to Gitee with white list
uses: Yikun/hub-mirror-action@master
with:
src: github/dyxang
dst: gitee/dyxang
dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
dst_token: ${{ secrets.GITEE_TOKEN }}
white_list: "dyxang"
force_update: true
debug: true
job3:
needs: [job2]
name: 再重新把网址替换为原网址确保国际节点网站保持原样
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Find and Replace
uses: jacobtomlinson/gha-find-replace@master
with:
find: "dyxang.gitee.io"
replace: "www.1inn.top"
//把 Github 仓库文件还原,让 Vercel 部署时正常使用