使用Termux加GitHub Action自动化部署Hexo

相信大家都想拥有一个自己的博客(maybe
接下来就演示如何使用如何使用Termux加上GitHub Action自动部署Hexo

1. 安装Termux

  • 点击下载Termux
  • 输入下面的命令初始化Termux
1apt update2apt upgrade
  • 安装nodejs,git,vim,openssh
1apt install nodejs-lts git vim openssh
  • 下载hexo并初始化
1npm install hexo-cli -g2hexo init blog  #blog可以替换为你喜欢的3cd blog4hexo g  #生成静态页面5hexo s  #启动本地服务

输入终端中给出的地址,复制到浏览器就可以打开了

2. 设置git并推送到GitHub

  • 在blog目录内初始化git
1git init
  • 配置git推送信息
1git config --global user.name "你的用户名"2git config --global user.email "你的电子邮箱"

最后都有双引号,用户名和邮箱最好和GitHub账号一致,方便后续提交

  • 配置openssh
1ssh-keygen -t rsa -C "你的电子邮箱"

同样和GitHub账号邮箱一致
一路回车即可
进入ssh目录查看公钥,以”.pub”结尾

1cd2cd .shh3cat id_rsa.pub

复制全部内容,不要多复制任何内容
打开GitHub设置,点击”SSH and GPG keys”,再点击”New SSH key”,随便输入一个名字,粘贴密钥,点按”Add SSH key”完成添加

  • 在blog目录使用git add .把文件添加到暂存区,再使用git commit -m "提交备注"来提交到本地仓库
  • (可选)使用了butterfly主题的,由于官方的命令把主题目录变成了子目录会报错,可以删除butterfly目录下的.git目录
  • 使用git remote add "仓库别名" "仓库ssh地址"来连接远程仓库
  • 使用git push -u "仓库别名" "分支"来推送到GitHub

3. 设置GitHub Action

  • 建议手动创建.github/workflows在workflows目录下创建pages.yml文件并配置以下文件
 1name: Blog CI/CD # 脚本 workflow 名称 2on: 3  push: 4    branches: [main, master] # 当监测 main,master 的 push 5    paths: # 监测所有 source 目录下的文件变动,所有 yml,json 后缀文件的变动。 6      - '*.json' 7      - '**.yml' 8      - '**/source/**' 9jobs:10  blog: # 任务名称11    timeout-minutes: 30 # 设置 30 分钟超时12    runs-on: ubuntu-latest # 指定最新 ubuntu 系统13    steps:14      - uses: actions/checkout@v2 # 拉取仓库代码15      - uses: actions/setup-node@v2 # 设置 node.js 环境16      - name: Cache node_modules # 缓存 node_modules,提高编译速度,毕竟每月只有 2000 分钟。17        uses: actions/cache@v218        env:19          cache-name: cache-node-modules20        with:21          path: ~/.npm22          key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}23          restore-keys: |24            ${{ runner.os }}-build-${{ env.cache-name }}-25            ${{ runner.os }}-build-26            ${{ runner.os }}-27      - name: Init Node.js # 安装源代码所需插件28        run: |29          npm install30          echo "init node successful"31      - name: Install Hexo-cli # 安装 Hexo32        run: |33          npm install -g hexo-cli --save34          echo "install hexo successful"35      - name: Build Blog # 编译创建静态博客文件36        run: |37          hexo clean38          hexo g39          echo "build blog successful"40      - name: Deploy Blog # 设置 git 信息并推送静态博客文件41        run: |42          git config --global user.name "你的用户名"43          git config --global user.email "你的邮箱"44          hexo deploy45      - run: echo "Deploy Successful!"

本代码来自【Hexo自动部署】优雅的使用 Github Actions 进行 Hexo 静态博客的持续集成 …其余的不啰嗦了,问题可以去看看这个

4. 配置静态页面

  • 在GitHub上新建一个仓库,用来搭建GitHub Pages服务,仓库名为<你的github用户名>.github.io复制其https地址,在github.com前添加一个Personal access tokens@大概长这样https://{token}@github.com/xanz1001/blog.git
  • 修改config.yml在最后把deploy修改成下面的样子
1deploy:2  - type: git3    repository:4      github: https://{$GH_TOKEN}@github.com/xanz1001/xanz1001.github.io.git5      ...6// 注意此处的 {$GH_TOKEN} 请替换成我们之前生成的 token 内容,此仓库地址是我们博客静态文件最终存放的仓库地址,即搭建教学中开通 Github Pages 服务的那个仓库地址。
  • 把Hexo目录再次推送到GitHub就完成了