网站LOGO
公爵书房 | 技术分享
页面加载中
10月3日
网站LOGO 公爵书房 | 技术分享
以指键之轻,承载知识之重
菜单
  • 公爵书房 | 技术分享
    以指键之轻,承载知识之重
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    Hexo 自动化部署方案
    点击复制本页地址
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。

    Hexo 自动化部署方案

    公爵 · 原创 ·
    笔记 · 自动化github actiongithubHexo
    共 5014 字 · 约 2 分钟 · 83
    本文最后更新于2023年09月01日,已经过了31天没有更新,若内容或图片失效,请留言反馈

    创建博客源码仓库

    我们需要创建一个用来存放 Hexo 博客源码的私有仓库

    创建完成后,需要把博客的源码 push 到这里。

    首先获取远程仓库地址,此处 SSH 和 HTTPS 均可,可以根据需要进行选择。

    为了避免一些不必要的麻烦,这里使用私有仓库

    Token获取

    访问 Github->头像(右上角)->Settings->Developer Settings->Personal access tokens->generate new token,创建的 Token 名称随意,但必须勾选 repo 项 和 workflows 项。

    token 只会显示这一次,之后将无法查看,所以务必保证你已经记录下了 Token。之后如果忘记了就只能重新生成重新配置了。

    配置 Github Action

    在博客根目录的 .github/workflows 文件夹(如果没有文件夹,则自行创建)下,创建 autodeploy.yml 文件,并把下面代码复制进去,这里我是用自己的配置,各位可以根据需要进行调整配置

    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,填写的内容为服务器的生成秘钥的私钥

    设置仓库和分支

    1. 在博客根目录运行以下指令
    bash 代码:
    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,注意更改
    # 如果不是,后面的所有设置的分支记得保持一致
    1. 添加屏蔽项

    因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github 上。这样可以显著减少需要提交的文件量和加快提交速度。打开博客根目录下的 .gitignore ,写入以下内容:

    bash 代码:
    .DS_Store
    Thumbs.db
    db.json
    *.log
    node_modules/
    public/
    .deploy*/
    .deploy_git*/
    .idea
    themes/anzhiyu/.git

    如果不是anzhiyu主题,记得替换最后一行内容为你自己当前使用的主题。

    1. 之后再运行 git 提交指令,将博客源码提交到 github 上。
    bash 代码:
    git add .
    git commit -m "github action update"
    git push origin master
    #2020年10月后github新建仓库默认分支改为main,注意更改

    查看部署情况

    此时,打开 GIthub 存放源码的私有仓库,找到 action。

    进入刚刚的 Commit 记录找到相应的任务,点击 Deploy 查看部署情况

    全部打钩即完成自动部署。

    参考文档

    使用 Github Action 自动部署

    Git + GitHub Action + SSH 将静态网站自动部署到云服务器上

    声明:本文由 公爵(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    发一条! 发一条!
    博客logo 公爵书房 | 技术分享 以指键之轻,承载知识之重 51统计 百度统计
    MOEICP 萌ICP备20226257号 ICP 赣ICP备2022001242号-1 ICP 闽公网安备35020502000606号 又拍云 本站由又拍云提供CDN加速/云存储服务

    🕛

    本站已运行 1 年 256 天 6 小时 47 分

    🌳

    自豪地使用 Typecho 建站,并搭配 MyLife 主题
    公爵书房 | 技术分享. © 2022 ~ 2023.
    网站logo

    公爵书房 | 技术分享 以指键之轻,承载知识之重
     
     
     
     
    壁纸