为了让小白也能理解,所以可能有些废话,请谅解。另外,其实不只是有一种方法 同时,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)中的「参数详解」标题下的小标题中「必选参数 dst_key 与 dst_token」来设置,获取到三个数值,ssh 公钥、ssh 密钥、Gitee 的API tokens
- 把 ssh 公钥 填到 Gitee 的 设置>安全设置>SSH公钥
- 在 Github 的同名仓库的 Settings>Secrets 下,新建 GITEE_PRIVATE_KEY、GITEE_TOKEN,分别填入 ssh 密钥与 Gitee 的API tokens
- 在仓库中选择 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 给删掉)。
- 在 Gitee 上开启 pages 服务
- 到此,每当你在 Gridea 提交了」同步「,则 Github 会自动把仓库推送到 Gitee,然后需要你在Gitee 后台手动刷新3 Pages 服务
提示
- 文章具有时效性,可能后续 Gridea 会增加对 Gitee 的支持,或者文章中的语法、使用方式发生变化,操作中请结合具体实际情况作出改动。
- 不要直接复制 demo 里的 yml文件进行配置(里面有一个 uses: ./. 是相对路径),要看清楚
- (1)的方法中,交给 Gitee 的是公钥(id_rsa.pub 文件全文),填到 Github 的是密钥(id_rsa 文件全文)
后记
真的不容易……以前根本没有详细了解 Github action,导致写配置文件的时候老是写错,写错又得看到底错在哪里,找文档和搜索引擎(这个阶段主要是因为我个人的独特需求导致的,详情请看下一篇文章),这一堆堆的报错通知啊……
项目地址 > 服务 > Gitee Pages > 更新 ↩︎