使用Github Actions部署Hexo

切换到Hexo写博客后,每次换电脑都要来遍NodeJS、Hexo的配置。虽然不算困难,但挺消耗写文章的心情,故决定折腾下Github CI,实现写完文章后推送就自动完成Hexo的生成和部署,这样方便专注于文章的撰写,不被环境搭建分散精力。 设置仓库 准备两个仓库,一个为博客源码仓库,一个是静态页面仓库。 博客源码仓库:名称任意,设为私有 静态页面仓库:名称需按照xxx.github.io格式来,必须设为公开的,存放Hexo生成的内容。参考https://pages.github.com/ 设置密钥 为了向静态页面仓库推送内容,需要添加一对SSH密钥,其中公钥设置到静态页面仓库,私钥设置到源码仓库。 生成密钥 ssh-keygen -t ed25519 -C "your_email@example.com" 在Github的静态仓库页面,添加新的Deploy Key。在Settings -> Deploy keys -> Add new中,填入任意Title,Value则是新生成的公钥内容。由于要往此仓库推送,需勾选”Allow Write Access“。 在Github的源码仓库页面,在Settings -> Secrets -> Actions中点击New repository secret,Name设置为DEPLOY_KEY(后面配置Github Actions的脚本时会用NAME索引到此secret),Value填入新生成私钥的内容 定义Workflows 在源码仓库根目录下,创建.github/workflows/hexo_deploy.yml文件,内容如下: name: HEXO_DEPLOY on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v2.5.0 with: ref: master submodules: 'true' - name: Use Node.js uses: actions/setup-node@v3 with: node-version: 18 - name: Setup hexo env: ACTION_DEPLOY_KEY: ${{ secrets....

2022-12-10 · Qiao