github使用GitHub 自动部署
REAI1.准备工作
- GitHub 官方的 action:GitHub Actions
 
- GitHub 仓库
一般命名为 {{username}}.github.io 这种形式。
在本仓库上再创建一个分支用于保存 Hexo 开发源码。
使用建好的分支进行 Hexo 源码备份,使用 master 分支进行博客源码部署。
这里也可以建两个仓库分别进行博客源码和 Hexo 开发源码的保存,跟建两个分支一样。 
确认 _config.yml 文件中有类似如下的 GitHub Pages 配置:
1 2 3 4
   | deploy:   type: git   repository: git@github.com:xpnobug/blog.git   branch: master
   | 
 
注意:将 repository 修改为自己的仓库地址。
2.创建 GitHub Personal Access Token(创建个人访问令牌)
用于 GitHub Actions 所构建得虚拟系统可以内容推送到仓库。
要使用令牌从命令行访问仓库,请选择 **repo(仓库)**。
3.设置仓库 Secrets
将创建好的 Personal Access Token 添加到仓库的 Secrets 中 设置名称:ACCESS_TOKEN
4.创建 workflow 脚本
在项目根目录下创建 .github/workflows 文件夹,并在文件夹下创建 YAML 文件用于编写任务执行脚本。
脚本内容如下:
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 56 57 58
   | name: Blog CI/CD
  # 触发条件:在 push 到 hexo-blog-backup 分支后触发 on:   push:     branches:        - master
  env:   TZ: Asia/Shanghai
  jobs:   blog-cicd:     name: Hexo blog build & deploy     runs-on: ubuntu-latest # 使用最新的 Ubuntu 系统作为编译部署的环境
      steps:     - name: Checkout codes       uses: actions/checkout@v2
      - name: Setup node       # 设置 node.js 环境       uses: actions/setup-node@v1       with:         node-version: '12.x'
      - name: Cache node modules       # 设置包缓存目录,避免每次下载       uses: actions/cache@v1       with:         path: ~/.npm         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
      - name: Install hexo dependencies       # 下载 hexo-cli 脚手架及相关安装包       run: |         npm install -g hexo-cli         npm install
      - name: Generate files       # 编译 markdown 文件       run: |         hexo clean         hexo generate
      - name: Deploy hexo blog       env:          # Github 仓库         GITHUB_REPO: github.com/xpnobug/blog       # 将编译后的博客文件推送到指定仓库       run: |         cd ./public && git init && git add .         git config user.name "xpnobug"         git config user.email "669307582@qq.com"         git add .         git commit -m "GitHub Actions Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')"         git push --force --quiet "https://${{ secrets.ACCESS_TOKEN }}@$GITHUB_REPO" master:hexo-blog
 
   | 
 
workflow 详细语法见: GitHub 操作的工作流程语法
最后,只需要将源码推送到指定分支,GitHub Actions 就会自动部署项目.