在手机上使用Termux加GitHub Action实现自动化部署Hexo
相信大家都想拥有一个自己的博客(maybe接下来就演示如何使用如何使用Termux加上GitHub Action自动部署Hexo
1. 安装Termux #
- 点击下载Termux
- 输入下面的命令初始化Termux
apt update
apt upgrade
- 安装nodejs,git,vim,openssh
apt install nodejs-lts git vim openssh
- 下载hexo并初始化
npm install hexo-cli -g
hexo init blog #blog可以替换为你喜欢的
cd blog
hexo g #生成静态页面
hexo s #启动本地服务
输入终端中给出的地址,复制到浏览器就可以打开了
2. 设置git并推送到GitHub #
- 在blog目录内初始化git
git init
- 配置git推送信息
git config --global user.name "你的用户名"
git config --global user.email "你的电子邮箱"
最后都有双引号,用户名和邮箱最好和GitHub账号一致,方便后续提交
- 配置openssh
ssh-keygen -t rsa -C "你的电子邮箱"
同样和GitHub账号邮箱一致 一路回车即可 进入ssh目录查看公钥,以".pub"结尾
cd
cd .shh
cat 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文件并配置以下文件
name: Blog CI/CD # 脚本 workflow 名称
on:
push:
branches: [main, master] # 当监测 main,master 的 push
paths: # 监测所有 source 目录下的文件变动,所有 yml,json 后缀文件的变动。
- '*.json'
- '**.yml'
- '**/source/**'
jobs:
blog: # 任务名称
timeout-minutes: 30 # 设置 30 分钟超时
runs-on: ubuntu-latest # 指定最新 ubuntu 系统
steps:
- uses: actions/checkout@v2 # 拉取仓库代码
- uses: actions/setup-node@v2 # 设置 node.js 环境
- name: Cache node_modules # 缓存 node_modules,提高编译速度,毕竟每月只有 2000 分钟。
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Init Node.js # 安装源代码所需插件
run: |
npm install
echo "init node successful"
- name: Install Hexo-cli # 安装 Hexo
run: |
npm install -g hexo-cli --save
echo "install hexo successful"
- name: Build Blog # 编译创建静态博客文件
run: |
hexo clean
hexo g
echo "build blog successful"
- name: Deploy Blog # 设置 git 信息并推送静态博客文件
run: |
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
hexo deploy
- 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
修改成下面的样子
deploy:
- type: git
repository:
github: https://{$GH_TOKEN}@github.com/xanz1001/xanz1001.github.io.git
...
// 注意此处的 {$GH_TOKEN} 请替换成我们之前生成的 token 内容,此仓库地址是我们博客静态文件最终存放的仓库地址,即搭建教学中开通 Github Pages 服务的那个仓库地址。
- 把Hexo目录再次推送到GitHub就完成了