为了让小白也能理解,所以可能有些废话,请谅解。另外,其实不只是有一种方法 同时,Gitee个人版每次代码更新后网站是不会自动更新网站,需要手动刷新,请斟酌是否选择 Gitee,解决办法1

只在 Gitee 上部署

准备

首先你需要具有

  • 懂得 Github /Github Actions 基础操作2
  • 有一个 Github 账号
  • 已经配置好了 Gridea,并能把博客同步到一个 Github 上与你的 Gitee 用户名同名的仓库 ,(例子:github/sample/sample)

注:Gitee 与 Github 不同的是,Gitee 上名为dyxang的仓库开启网站托管后网址是dyxang.gitee.io, 而 Github 上是名为dyxang.github.io的仓库开启网站托管网址才是 dyxang.github.io

开始

  1. 阅读一下这个项目,如果感觉自己能行,那么可以跳过以下所有步骤自己来动手
  2. 照着 (1)中的「参数详解」标题下的小标题中「必选参数 dst_key 与 dst_token」来设置,获取到三个数值,ssh 公钥、ssh 密钥、Gitee 的API tokens
  3. ssh 公钥 填到 Gitee 的 设置>安全设置>SSH公钥
  4. 在 Github 的同名仓库的 Settings>Secrets 下,新建 GITEE_PRIVATE_KEY、GITEE_TOKEN,分别填入 ssh 密钥Gitee 的API tokens
  5. 在仓库中选择 Actions>New workflow ,然后点 Skip this and set up a workflow yourself 新建 main.yml 文件 关于 yml 文件的内容可以直接用我已经设置好的:
on: push
name: Github 同步到 Gitee
jobs:
  run:
    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/你的用户名
        dst: gitee/你的用户名
        dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
        dst_token:  ${{ secrets.GITEE_TOKEN }}
        white_list: "你的用户名"
        force_update: true
        debug: true

然后再在本地存放博客的文件夹里的放上一个路径为 static/.github/workflows/main.yml 的同样文件(因为 Gridea在上传过程中会把原有仓库里的 main.yml 给删掉)。

  1. 在 Gitee 上开启 pages 服务
  2. 到此,每当你在 Gridea 提交了」同步「,则 Github 会自动把仓库推送到 Gitee,然后需要你在Gitee 后台手动刷新3 Pages 服务

提示

  • 文章具有时效性,可能后续 Gridea 会增加对 Gitee 的支持,或者文章中的语法、使用方式发生变化,操作中请结合具体实际情况作出改动。
  • 不要直接复制 demo 里的 yml文件进行配置(里面有一个 uses: ./. 是相对路径),要看清楚
  • (1)的方法中,交给 Gitee 的是公钥(id_rsa.pub 文件全文),填到 Github 的是密钥(id_rsa 文件全文)

后记

真的不容易……以前根本没有详细了解 Github action,导致写配置文件的时候老是写错,写错又得看到底错在哪里,找文档和搜索引擎(这个阶段主要是因为我个人的独特需求导致的,详情请看下一篇文章),这一堆堆的报错通知啊……


  1. 自动部署 Gitee Pages ↩︎

  2. 《Github Actions 入门教程》 ↩︎

  3. 项目地址 > 服务 > Gitee Pages > 更新 ↩︎