目的

Coding DevOps 通过GitHub做跳板,个人博客自动部署至Netlify App

使用国内Git仓库同步到Github仓库,实现Netlify App自动部署自己的博客网站。

由于GitHub在不开代理的情况下时常无法提交文件,于是就用了Coding DevOps作为博客的仓库,
而我的博客部署在Netlify App,但是Netlify App不支持国内的Git服务商。

准备工作

  1. Github建立两个仓库

    1. GitActionScript (专门存放各种Action文件的仓库,如自动备份MongoDB、MySQL数据库等..)
    2. Blog(目的仓库,从Coding同步文件,Netlity部署用到此处仓库)
  2. Coding建立一个仓库

    1. HexoBlog(个人博客的源文件)

生成SSH Key

1
ssh-keygen -m PEM -t ed25519 -C "wanglu2325@qq.com"

一路回车,在用户名\.ssh\ 文件夹下,生成两个文件id_ed25519id_ed25519.pub
20230811175539

网站添加SSH公钥

Coding.Net

  1. 登陆Coding.Net,进入首页点击左下角自己的昵称,点击个人账户设置,进入个人设置页面后,点击SSH公钥20230811180736
  2. 复制id_ed25519.pub的内容粘贴到公钥内容20230811180941

Github.com

  1. 登陆GitHub,点击个人头像,然后点击Settings.20230811181209
  2. 进入设置页面,点击SSH and GPG key点击右上角New SSH Key20230811181358
  3. 复制id_ed25519.pub的内容粘贴到Key,然后点击Add SSH key20230811181655

回到电脑验证SSH连通性

1
ssh -T git@github.com

交互界面输入y

1
ssh -T git@e.coding.net

交互界面输入y

20230811182441

此步骤过后,在用户名\.ssh\ 文件夹下,有三个文件id_ed25519id_ed25519.pub以及KNOWN_HOSTS

同步Git仓库

  1. 点击仓库的Settings–>secrets and variables–>Actions–>New repository secret20230811183305

  2. Name 输入SSH_PRIVATE_KEY,Secert输入id_ed25519中的内容20230811183547

  3. 重复步骤2,将回到电脑验证SSH连通性中生成的KNOWN_HOSTS添加到repository secret 名字为:SSH_KNOWN_HOSTS

  4. GitActionScript仓库中新建一个Action.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    name: 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脚本,及时同步代码。

  1. 进入项目主页,点击项目设置–>开发者选项–>Service Hook–>新建Service Hook按照下图填入参数。20230811214225

  2. 参考资料:

    1. Coding.net service hook
    2. Github.com workflow-runs

总结

  1. 代码放在国内Git服务商上(如:coding、gitee、Codeup等)
  2. 利用Github的Action,将代码仓库同步至Github
  3. Netlity 绑定Github,将项目部署。
  4. github与coding的分支名称要保持一致,文中没有强调。