相信大家都想拥有一个自己的博客(maybe接下来就演示如何使用如何使用Termux加上GitHub Action自动部署Hexo
1. 安装Termux
- 点击下载Termux
- 输入下面的命令初始化Termux
1apt update
2apt upgrade- 安装nodejs,git,vim,openssh
1apt install nodejs-lts git vim openssh- 下载hexo并初始化
1npm install hexo-cli -g
2hexo init blog #blog可以替换为你喜欢的
3cd blog
4hexo 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"结尾
1cd
2cd .shh
3cat 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@v2
18 env:
19 cache-name: cache-node-modules
20 with:
21 path: ~/.npm
22 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 install
30 echo "init node successful"
31 - name: Install Hexo-cli # 安装 Hexo
32 run: |
33 npm install -g hexo-cli --save
34 echo "install hexo successful"
35 - name: Build Blog # 编译创建静态博客文件
36 run: |
37 hexo clean
38 hexo g
39 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 deploy
45 - 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: git
3 repository:
4 github: https://{$GH_TOKEN}@github.com/xanz1001/xanz1001.github.io.git
5 ...
6// 注意此处的 {$GH_TOKEN} 请替换成我们之前生成的 token 内容,此仓库地址是我们博客静态文件最终存放的仓库地址,即搭建教学中开通 Github Pages 服务的那个仓库地址。- 把Hexo目录再次推送到GitHub就完成了