背景
在玩 Hexo 博客的时候,每次提交写文章,发文章都要在本地先写完,在编译在发布。步骤可谓是极其繁琐,要没个耐心怕早早就弃坑了。幸好 Github 有一个能实现自动化的功能—— Github Action 。于是乎就有了下文—>
实现
Github 实现
基本准备
- 在 Github 上创建一个仓库,仓库命名随便(你找得到就行)。因为 Github 被微软收购的原因,个人用户现在也能建立私有仓库了,所以_–>。这个仓库是用来放你 Hexo 博客源码的
- 在本地用 ssh-keygen 命令生成一组公私秘钥。
- 进入源码仓库–>Settings–>Secrets里添加生成的私钥,名称为 ACTION_DEPLOY_KEY ;添加名称为 GIT_EMAIL 内容为你的 git 邮箱 ;添加 GIT_NAME 内容为你的 git 用户名。(跟下面代码要一致)
- 进入博客仓库–>Settings–>Deploy keys里添加生成的公钥,名称自己随便写,我用的是(ACTION_DEPLOY_KEY )
正式开始
- 如图所示
![Github1.png]()
- 配置 Github Actions ,代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| name: 自动部署 Hexo
on: push: branches: - master
jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [12.x]
steps: - name: 开始运行 uses: actions/checkout@v1
- name: 设置 Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}
- name: 设置环境 env: ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }} TZ: Asia/Shanghai run: | mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name '${{secrets.GIT_NAME}}' git config --global user.email '${{secrets.GIT_EMAIL}}' - name: 安装 Hexo CI run: | export TZ='Asia/Shanghai' npm install hexo-cli -g - name: 缓存 uses: actions/cache@v1 id: cache-dependencies with: path: node_modules key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}
- name: 安装插件 if: steps.cache-dependencies.outputs.cache-hit != 'true' run: | npm install - name: 部署博客 run: | hexo clean && hexo g && hexo d
|
至此 Github 完成
Coding 实现
有了前面 Github 的实现,Coding 就简单了。
基本准备
- 按图所示,创建令牌
![coding.jpg]()
- 创建完后会有一个私人密钥,只出现一次,记得保存。
- 令牌创建完后就可以通过
https://令牌用户名:令牌密钥@你的仓库地址
来控制你的仓库了
正式开始
- 进入你的 Hexo 博客根配置文件中,将 Coding 的 deploy 换成
https://令牌用户名:令牌密钥@你的仓库地址
- 将你的 Hexo push到 GitHub 就实现双线部署了。
Ps:代码是从别处找到的,具体忘记在哪了。。。
写于 2020-03-16