国内Git仓库同步到Github仓库
目的
Coding DevOps 通过GitHub做跳板,个人博客自动部署至Netlify App
使用国内Git仓库同步到Github仓库,实现Netlify App自动部署自己的博客网站。
由于GitHub在不开代理的情况下时常无法提交文件,于是就用了Coding DevOps作为博客的仓库,
而我的博客部署在Netlify App,但是Netlify App不支持国内的Git服务商。
准备工作
Github建立两个仓库
- GitActionScript (专门存放各种Action文件的仓库,如自动备份MongoDB、MySQL数据库等..)
- Blog(目的仓库,从Coding同步文件,Netlity部署用到此处仓库)
Coding建立一个仓库
- HexoBlog(个人博客的源文件)
生成SSH Key
1 | ssh-keygen -m PEM -t ed25519 -C "wanglu2325@qq.com" |
一路回车,在用户名\.ssh\ 文件夹下,生成两个文件id_ed25519
和id_ed25519.pub
网站添加SSH公钥
Coding.Net
- 登陆Coding.Net,进入首页点击左下角自己的昵称,点击
个人账户设置
,进入个人设置页面后,点击SSH公钥
- 复制
id_ed25519.pub
的内容粘贴到公钥内容
Github.com
- 登陆GitHub,点击个人头像,然后点击
Settings
. - 进入设置页面,点击
SSH and GPG key
点击右上角New SSH Key
- 复制
id_ed25519.pub
的内容粘贴到Key
,然后点击Add SSH key
回到电脑验证SSH连通性
1 | ssh -T git@github.com |
交互界面输入y
1 | ssh -T git@e.coding.net |
交互界面输入y
此步骤过后,在用户名\.ssh\ 文件夹下,有三个文件id_ed25519
和id_ed25519.pub
以及KNOWN_HOSTS
同步Git仓库
点击仓库的
Settings
–>secrets and variables
–>Actions
–>New repository secret
Name
输入SSH_PRIVATE_KEY
,Secert
输入id_ed25519
中的内容重复步骤2,将回到电脑验证SSH连通性中生成的
KNOWN_HOSTS
添加到repository secret
名字为:SSH_KNOWN_HOSTS
在
GitActionScript
仓库中新建一个Action
.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20name: GIT-MIRROR-CODING
on: workflow_dispatch
# Ensures that only one mirror task will run at a time.
concurrency:
group: git-mirror
jobs:
git-mirror:
runs-on: ubuntu-latest
steps:
- uses: wearerequired/git-mirror-action@v1
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
SSH_KNOWN_HOSTS: ${{ secrets.SSH_KNOWN_HOSTS }}
with:
source-repo: "git@e.coding.net:your_account/workspace/HexoBlog.git"
destination-repo: "git@github.com:your_account/Blog.git"
Coding.net设置 WebHook
目的是通知Github执行Action脚本,及时同步代码。
进入项目主页,点击
项目设置
–>开发者选项
–>Service Hook
–>新建Service Hook
按照下图填入参数。参考资料:
总结
- 代码放在国内Git服务商上(如:coding、gitee、Codeup等)
- 利用Github的Action,将代码仓库同步至Github
- Netlity 绑定Github,将项目部署。
- github与coding的分支名称要保持一致,文中没有强调。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 樂依博客!
评论