创建博客源码仓库
我们需要创建一个用来存放 Hexo
博客源码的私有仓库
创建完成后,需要把博客的源码 push 到这里。
首先获取远程仓库地址,此处 SSH 和 HTTPS 均可,可以根据需要进行选择。
{cat_tips_warning color=""}
为了避免一些不必要的麻烦,这里使用私有仓库
{/cat_tips_warning}
Token获取
访问 Github->头像(右上角)->Settings->Developer Settings->Personal access tokens->generate new token,创建的 Token 名称随意,但必须勾选 repo 项 和 workflows 项。
{cat_tips_warning color=""}
token 只会显示这一次,之后将无法查看,所以务必保证你已经记录下了 Token。之后如果忘记了就只能重新生成重新配置了。
{/cat_tips_warning}
配置 Github Action
在博客根目录的 .github/workflows
文件夹(如果没有文件夹,则自行创建)下,创建 autodeploy.yml
文件,并把下面代码复制进去,这里我是用自己的配置,各位可以根据需要进行调整配置
name: 自动部署
on:
push:
branches:
- master #可以更换成自己的分支
release:
types:
- published
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 检查分支
uses: actions/checkout@v2
with:
ref: master
- name: 安装 Node
uses: actions/setup-node@v1
with:
node-version: "16.x"
- name: 安装 Hexo
run: |
export TZ='Asia/Shanghai'
npm install hexo-cli -g
- name: 缓存 Hexo
id: cache-npm
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: node_modules
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: 安装依赖
if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }}
run: |
npm install gulp-cli -g
npm install --save #下面的依赖可以根据需要去除,这个用于gulp压缩使用
npm install gulp-htmlclean --save-dev
npm install gulp-html-minifier-terser --save-dev
npm install gulp-clean-css --save-dev
npm install gulp-terser --save-dev
npm install gulp-fontmin --save-dev
- name: 生成静态文件
run: |
hexo clean
hexo bangumi -u #获取bilibili追番
hexo generate
gulp
- name: 部署到云服务器
uses: Burnett01/rsync-deployments@6.0.0
with:
switches: -avzh
path: public/
remote_path: #填写服务器网站根目录
remote_host: #服务器地址或域名
remote_port: #ssh端口号
remote_user: #登录用户
remote_key: ${{ secrets.SERVER_KEY }}
- name: 部署到Github
uses: JamesIves/github-pages-deploy-action@v4
with:
token: #前面申请的token填入这里
repository-name: gongjuecloak/gongjuecloak.github.io #更换成自己的静态文件仓库
branch: master
folder: public
commit-message: "${{ github.event.head_commit.message }} Updated By Github Actions"
secrets.SERVER_KEY
需要在博客源码仓库的 Setting>>Secret>>Actions
新建环境变量,命名为SERVER_KEY
,填写的内容为服务器的生成秘钥的私钥
设置仓库和分支
- 在博客根目录运行以下指令
git init #初始化
git remote add origin git@github.com:gongjuecloak/hexo.git #git@github.com:[github用户名]/[博客源码仓库名].git
git checkout -b master # 切换到master分支,
#2020年10月后github新建仓库默认分支改为main,注意更改
# 如果不是,后面的所有设置的分支记得保持一致
- 添加屏蔽项
因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github 上。这样可以显著减少需要提交的文件量和加快提交速度。打开博客根目录下的 .gitignore
,写入以下内容:
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
.deploy_git*/
.idea
themes/anzhiyu/.git
如果不是anzhiyu主题,记得替换最后一行内容为你自己当前使用的主题。
- 之后再运行 git 提交指令,将博客源码提交到 github 上。
git add .
git commit -m "github action update"
git push origin master
#2020年10月后github新建仓库默认分支改为main,注意更改
查看部署情况
此时,打开 GIthub 存放源码的私有仓库,找到 action。
进入刚刚的 Commit 记录找到相应的任务,点击 Deploy 查看部署情况
全部打钩即完成自动部署。