让博客「同时」部署到 码云 和 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 部署时正常使用