使用 GitHub Actions 自动部署 Hexo 个人博客

文章目录

  • 申请 GitHub Token
  • 源码仓库
  • 配置 Github Action
  • 重新设置远程仓库和分支
  • 查看部署

每次部署 Hexo 都需要运行 hexo cl & hexo g & hexo d 指令三件套完成推送到远程仓库,随着文章越来越多,编译的时间也会越来越长,通过 Github Actions,我们只需要在每次完成博客的编写或修改以后,将改动直接 push 到远程仓库,之后的编译部署的工作统统交给 CI 来完成即可。

申请 GitHub Token

  1. 登录 GitHub:https://github.com/,点击右上角头像,点击【Setting】

    image-20230528215544904

  2. 点击左侧的【Developer settings】:

    image-20230528215740677

  3. 依次点击【Personal access tokens】、【Tokens】、【Generate new token】:

    image-20230528215917284

  4. 填写 【Note】、【过期时间】,勾选【repo】【workflow】,点击【Generate Token】:

    image-20230528220108288

  5. 复制生成的 Token,后续会用到。

    image-20230528220411338

源码仓库

  1. 创建一个存放源码的仓库,仓库名任意,勾选【Private】,点击【create repository】:

    image-20230528214812064

配置 Github Action

  1. 在本地 [Blogroot] 根目录下新建 .github 文件夹,注意开头是有个 . 的:

    image-20230528215202940

  2. 然后在 .github 目录下新建 workflows 文件夹:

    image-20230528215237031

  3. 新建 autodeploy.yml 文件,在 autodeploy.yml 中添加以下内容:

    name: 自动部署
    # 当有改动推送到main分支时,启动Action
    on:
      push:
        branches:
          - main
      release:
        types:
          - published
    
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: 检查分支
            uses: actions/checkout@v2
            with:
              ref: main
    
          - 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 #全局安装gulp
              npm install --save
    
          - name: 生成静态文件
            run: |
              hexo clean
              hexo bangumi -u #bilibili番剧更新
              hexo generate # 生成静态文件
              hexo algolia # 同步 algolia 搜索
              gulp
    
          - name: 部署到Github
            uses: JamesIves/github-pages-deploy-action@v4
            with:
              token: # github token
              repository-name: # 推送的目标仓库:用户名/仓库 ShiJieCloud/blog-source
              branch: main # 推送的目标仓库分支
              folder: public # 要推送的文件夹下的内容
              commit-message: "${{ github.event.head_commit.message }} Updated By Github Actions"
    

重新设置远程仓库和分支

  1. 打开本地 [Blogroot] 根目录下的 .gitignore 文件,输入以下内容:

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

    注:有其他主题文件时请将 themes/anzhiyu/.git 修改为对应的的主题目录,或者将主题目录下的 .git 文件进行删除。

  2. 在博客根目录 [Blogroot] 下启动终端,使用 git 指令重设仓库地址:

    git remote rm origin # 删除原有仓库链接
    git remote add origin [github 源码仓库地址] # github 源码仓库地址
    
  3. 推送本地源码到远程仓库:

    git branch -M main # 切换到main分支
    git add .
    git commit -m "github action update"
    git push -u origin main
    

查看部署

进入存放源码的仓库,点击【Actions】即可查看到自动部署的情况,每次本地推送到远程仓库时,会触发自动部署。

image-20230528221621461

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/25284.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt赋能python:Python创建venv的完全指南

Python创建venv的完全指南 在Python开发中,虚拟环境是一个非常有用的工具。它可以让我们在同一台计算机上拥有多个Python环境,而不会互相干扰。在本文中,我们将介绍如何使用Python创建venv(虚拟环境)。 什么是venv&a…

形态学图像处理和图像分割MATLAB实验

文章目录 一、实验目的二、实验内容1. 开运算和闭运算实验。2. 用形态学处理提取边界。4. 全局阈值处理。 一、实验目的 理解腐蚀和膨胀的原理,掌握开运算、闭运算及形态学的边界提取。掌握孤立点检测、线检测和边缘检测的方法。掌握全局阈值处理的方法。 二、实验…

如何在上架App之前设置证书并上传应用

App上架教程 在上架App之前想要进行真机测试的同学,请查看《iOS- 最全的真机测试教程》,里面包含如何让多台电脑同时上架App和真机调试。 P12文件的使用详解 注意: 同样可以在Build Setting 的sign中设置证书,但是有点麻烦&…

C语言函数大全-- y 开头的函数

C语言函数大全 y 开头的函数1. yperror1.1 函数说明1.2 演示示例 2. yp_match2.1 函数说明2.2 演示示例 3. y0【零阶第二类贝塞尔函数】3.1 函数说明3.2 演示示例3.3 运行结果 4. y1【一阶第二类贝塞尔函数】4.1 函数说明4.2 演示示例4.3 运行结果 5. yn【n 阶第二类贝塞尔函数…

Python IDLE介绍

目录 IDE(集成开发环境)是什么 Python IDLE使用方法详解 Python IDLE常用快捷键 IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员…

第五章 图像处理

文章目录 前言一、图像金字塔1.高斯金字塔2.拉普拉斯金字塔 二、图像轮廓1. 轮廓提取2. 轮廓绘制3. 轮廓特征4. 轮廓近似5. 轮廓标记 三、模板匹配四、直方图1. 对比度2. 绘制直方图3. 均衡化3.1 理论3.2 代码 4. CLAHE 五、图像傅里叶变换5.1 正弦平面波5.2 二维傅里叶变换5.3…

VITS语音生成模型详解及中文语音生成训练

1 VITS模型介绍 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种结合变分推理(variational inference)、标准化流(normalizing flows)和对抗训练的高表现力语…

fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

前言 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,的作用就是把java对象转换为json形式,也可 以用来将json转换为java对象。 fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类&#xff…

20230530论文整理·1-课题组1

个人观点,现在的NLP文章,有些是在做积木,微创新,有些文章,是可以的,读起来很美,有些,太过逆了,吃起来没味道,反胃。 文章目录 1.CODEIE: Large Code Generat…

TreeMap(1):TreeMap介绍

1 TreeMap的特点 概念: TreeMap是一个双列集合,是Map的子类。底层由红黑树结构构成。 特点: 元素中键不能重复元素会按照大小顺序排序 2 TreeMap的数据结构 2.1二叉查找树 2.1.1二叉查找树的定义 特点: 若左子树不空&#…

从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法

前面已经对 string 类进行了简单的介绍和应用,大家只要能够正常使用即可。 在面试中,面试官总喜欢让学生自己 来模拟实现string类, 最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。 为了更深入学习STL,下面我…

乐谱文件转换,支持批量mscz、mxl、musicxml转mp3等格式

我是一个喜欢听音乐的人,每天都会在路上听着歌放松自己。但是有时候想要听的歌并没有下载下来,或者格式不兼容。 最近我发现了一个神奇的软件——mscz转mp3,可以把乐谱文件转成mp3格式! 软件界面简洁明了,使用也非常…

【JavaSE】Java基础语法(四十四):XML解析

文章目录 1. 概述2.标签的规则3. 语法规则【应用】4. xml解析【应用】 1. 概述 万维网联盟(W3C) 万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。 建立者: Tim Berners-Lee (蒂姆伯纳斯李)。 是Web技术领域…

Hive安装部署

1、Hive安装地址 ①Hive官网地址 Apache Hive ②文档查看地址 GettingStarted - Apache Hive - Apache Software Foundation ③下载地址 Index of /dist/hive ④github地址 GitHub - apache/hive: Apache Hive 2、 安装Hive 1)把apache-hive-3.1.3-bin.ta…

数据结构-顺序表

数据结构-顺序表 线性表顺序表的概念和结构静态顺序表和动态顺序表 接口的实现顺序表的初始化顺序表的打印顺序表的销毁顺序表的增容顺序表的尾插顺序表的尾删顺序表的头插顺序表的头删顺序表的任意位置插入顺序表的任意位置删除顺序表中元素的查找 完整代码 线性表 线性表是n…

MyBatis 环境搭建+基本使用

目录 MyBatis创建MyBatis环境搭建MyBatis模式开发MyBatis 获取动态参数(查询操作)${} 直接替换#{} 占位符模式替换like查询(模糊查询)多表查询一对一的表映射一对多的表映射 增、删、改操作改操作删除操作增加操作添加用户添加用户…

JVM学习(十三):面试中绕不开的String

目录 一、String 的基本特性 1.1 String类的声明 1.2 String的存储方式在jdk9中的变更 1.3 Stirng 的不可变性 二、String的内存分配 2.1 字符串常量池是什么 2.2 底层原理与默认值 2.3 字符串常量池所在位置 三、字符串的拼接操作 3.1 拼接操作结果存放位置 …

es elasticsearch 九 索引index 定制分词器 type结构后期弃用原因 定制动态映射 动态映射模板 零停机重建索引

目录 索引index 定制分词器 Type底层结构及弃用原因 定制 dynamic mapping 定制dynamic mapping template 动态映射模板 零停机重建索引 生产环境应该度别名数据 索引index Put /index Stings 分片 Mapping 映射 Aliases 别名 增加 Put my_index2 { "se…

软考A计划-试题模拟含答案解析-卷七

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

从C语言到C++_12(string相关OJ题)(leetcode力扣)

上一篇已经讲了string类的接口函数,然后根据查文档刷了牛客和力扣58最后一个单词的长度, 还有力扣415字符串相加,这篇继续跟着查文档来刷力扣题,体会C刷题的方便。 目录 917. 仅仅反转字母 - 力扣(LeetCode&#xf…