资料来源
环境 Windows
前提条件
需要有个人的GitHub
建立至少一个存储库,储存库要求如下:
输入 username.github.io 作为存储库名称。 将 username 替换为您的 GitHub 用户名。
用户或组织名称包含大写字母,必须使用小写字母
仓库的可见性为公开(Public
参考官方文档
方式一 1.博客根目录下安装hexo-deployer-git
git地址 1 npm install hexo-deployer-git --save
2.修改根目录下_config.yml
1 2 3 4 deploy: type: git repo: git@github.com:username/username.github.io.git branch: master
注意事项: 1. 我是用的ssh 的方法非https
的方法 2. 需要在你的GitHub账号添加秘钥 添加方式见文档使用 SSH 连接到 GitHub
ssh 生成方式
1 ssh-keygen -t -C "your_email@example.com"
3.执行命令
4.成功后可在GitHub上查看如下
使用GitHub Actions自动部署方式
此方法和以下yml都来自 Fluid’s blog
将Hexo的博客项目上传至GitHub 1.上传项目到GitHub 2.如下图设置
如上图 name
英文字母大写如果用小写会转成大写可以带下划线, value
填写上面ssh生成文件中不带 .pug
后缀文件中的内容,记住name
将下面yml中${{ secrets.SSH_PRIVATE }}
中的SSH_PRIVATE
换成自己的
新建 ***.yml
必须将工作流程文件存储在仓库的 .github/workflows 目录中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 name: Deploy on: [push ] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: ref: master - name: Update Submodule run: | git submodule init git submodule update --remote - name: Setup Node uses: actions/setup-node@v1 with: node-version: "16.x" - name: Hexo Generate run: | rm -f .yarnclean yarn --frozen-lockfile --ignore-engines --ignore-optional --non-interactive --silent --ignore-scripts --production=false rm -rf ./public yarn run hexo clean yarn run hexo generate - name: Hexo Deploy env: SSH_PRIVATE: ${{ secrets.SSH_PRIVATE }} GIT_NAME: yourname GIT_EMAIL: your@email.com run: | mkdir -p ~/.ssh/ echo "$SSH_PRIVATE" | tr -d '\r' > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name "$GIT_NAME" git config --global user.email "$GIT_EMAIL" yarn run hexo deploy
注意:上面yml中node版本可以根据自己环境中的版本更换我的是16的版本所以换成了16。
推送代码 每次推送像github的时候会通过 github actions 把代码推向 username.github.io 的储存库的指定分支如果失败可以点击 Action
查看失败原因
点进去之后可以查看出错的地方
注:问题可能出在Hexo Deploy
查看自己储存库setting->secrets->Actions->Actions secrets是否正确
结语 可以先通过方法一成功上传并访问username.github.io
查看到后在使用方法二,上传成功后有最长20分钟的延迟可查看访问
当然也可以在同一个储存库不同的分支下进行如上操作,因为username.github.io
这个库是公开的所以不建议这么操作
附赠_config.yml
中部分修改内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 url: https://aninchoftime.github.io permalink: :year/:month/:day/:title/ permalink_defaults: pretty_urls: trailing_index: true trailing_html: true deploy: type: git repo: git@github.com:AnInchOfTime/aninchofTime.github.io.git branch: master