使用Travis CI自动部署Hexo到GitHub

简介: 原文链接(转载请注明出处):使用Travis CI自动部署Hexo到GitHub前言使用 hexo + gitPages 搭建个人博客的人都知道,每当要发表一篇博文,第一步得手动使用 hexo g 命令生成静态网页,然后还得通过 hexo d 命令将静态文件推送到GitHub远程仓库,不说麻烦不麻烦,更重要的是有时候环境换了,没有搭建 hexo 环境,想发篇博客的时候就没有可能了。

原文链接(转载请注明出处):使用Travis CI自动部署Hexo到GitHub

前言

使用 hexo + gitPages 搭建个人博客的人都知道,每当要发表一篇博文,第一步得手动使用 hexo g 命令生成静态网页,然后还得通过 hexo d 命令将静态文件推送到GitHub远程仓库,不说麻烦不麻烦,更重要的是有时候环境换了,没有搭建 hexo 环境,想发篇博客的时候就没有可能了。而现在通过 Travis CI 就能自动构建自己的博客。我们只需将写好的 Markdown 格式的博文push 到 hexo源文件 分支即可。

Travis CI 介绍

Travis CI 是目前新兴的开源持续集成构建项目,它与 jenkins,GO的很明显的特别在于采用 yaml 格式,简洁清新独树一帜。目前大多数的 github 项目都已经移入到 Travis CI 的构建队列中,据说 Travis CI 每天运行超过 4000 次完整构建。

hexo 介绍

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

使用 Travis 自动构建

我的博客自动部署思路是,将 hexo 源码 push 到博客 项目的另外一个分支,
既一个分支放源码,一个分支放静态文件,使用 Travis CI 自动部署 hexo 源码的分支,构建完成后自动推送到 静态文件的分支上,而这一切都在一个仓库上进行操作。

注意:如果使用的是GitPage的个人站点来搭建博客的 ,则博客静态文件在 master分支上;如果使用的是 gitPages 的项目站点来搭建博客,则博客的静态文件在 gh-pages 分支上。

在GitHub 上生成 Access Token

如果想要 让travis CI 构建完成之后自动 push 到 master 分支,则travis需要有对这个仓库进行操作的权限,此时我们就需要为Travis CI 配置Access Token(访问令牌)。

在GitHub上生成Access Token 的步骤是,点击头像进入设置(Settings),r然后点击左边菜单栏最下面的Developer settings 选项,进入后点击左边的 Personal access tokens 选项,进入后点击右上角的Generate new token 按钮
mark
点击后就会来到下面的界面,先给 Token 起一个名字,然后为它设置一些权限,其中红框内的权限是必须的,其他可以随意添加。
mark
点击下面的 create token 按钮,就会生成一个已经赋予好权限的 token 值,接下来我们Travis CI 网站的配置中。
mark

配置 Travis CI

如果之前从未使用 Travis CI 来构建项目,则我们先需要使用GitHub账号来登录网站,登录进来后,会进到如下图界面,如果底下 没有把 GitHub 仓库中的项目加载进来,可以手动点击右上角的 Sync account 按钮,待到同步完成后将要自动构建的项目开启。
mark
开启后点击设置图标就可以进行一系列的设置,如下图所示,先开启 General 里的两项选项:

  • Build only if .travis.yml is present:只有在.travis.yml文件中配置的分支改变了才构建
  • Build branch updates:当分支更新后开始构建

然后在 Environment Variables 一栏里将在 GitHub 下获取的的 Access Token 值添加进来
mark

添加配置文件到Hexo源码分支下

上面提到的 .travis.yml 配置文件需要添加到hexo 源码的根目录下,因为Travis CI 在自动构建时需要获取这些配置信息,以此来完成构建任务;这些配置信息主要包括源码分支,静态文件推送分支,仓库地址等信息。
mark
其中主要内容如下:

language: node_js
node_js: stable

# S: Build Lifecycle
install:
  - npm install

#before_script:
 # - npm install -g gulp

script:
  - hexo g

after_script:
  - cd ./public
  - git init
  - git config user.name "dmego" --{GitHub账户名称}
  - git config user.email "zengkai12138@outlook.com" --{Github账户邮箱}
  - git add .
  - git commit -m "Update docs"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
# E: Build LifeCycle

branches:
  only:
    - hexo --{Hexo源码分支名称}
env:
 global:
   - GH_REF: github.com/dmego/dmego.github.io.git --{仓库地址}

配置到这一步就已经把所有配置全部完成,下面就是验证的过程

构建并自动部署结果

将某篇文章中的一个表格增加一行后将修改推送到hexo源码所在的hexo分支
,然后等Travis CI 构建并自动部署成功后。
mark
点击博文发现表格多了一行。
mark

总结

这样做虽然能很好的实现自动部署的功能,但是有个问题也要注意,就是博客源码公开问题,如果对博客源码不介意的可以直接使用公开仓库,如果介意那就没有办法了,除非使用付费的私有仓库,或者把项目放在Coding上去,因为上有提供免费的私有仓库。就我个人认为,既然是自己的博客,本来就是要给人看的,博客源码也谈不上存在什么隐私。

目录
相关文章
|
2月前
|
网络协议 开发工具 git
hexo github部署,通过域名访问你的博客
本文介绍了如何使用Hexo命令部署博客到GitHub,并详细说明了如何通过自定义域名访问GitHub上部署的博客。
hexo github部署,通过域名访问你的博客
|
3月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
57 0
|
3月前
|
Devops 持续交付 开发者
.NET自动化之旅:是Azure DevOps还是GitHub Actions能够打造完美的CI/CD流水线?
【8月更文挑战第28天】在现代软件开发中,持续集成(CI)与持续部署(CD)是提升代码质量和加速交付的关键实践。对于 .NET 应用,Azure DevOps 和 GitHub Actions 等工具可高效构建 CI/CD 流水线,提升开发效率并确保软件稳定可靠。Azure DevOps 提供一站式全流程管理,支持 YAML 定义的自动化构建、测试和部署;GitHub Actions 则以简洁灵活著称,适用于 .NET 项目的自动化流程。选择合适的工具可显著提高开发效率并确保高质量标准。
19 0
|
5月前
|
jenkins 物联网 测试技术
干货分享!基于 Github Action 的 taosX CI 搭建
去年随着 3.1.1.0 版本的发布,TDengine 数据接入工具 taosX 正式推出。该工具具备强大的数据抓取、清洗、转换及加载(ETL)功能。它不仅能无缝对接物联网中的 MQTT 协议,更重要的是能够连接到工业数据源如 OPC-UA、OPC-DA、PI System 等。借助这一模块,工业场景中常用的 SCADA、DCS 等系统无需编写任何代码,仅需通过简单配置即可实现数据的实时、持续导入至 TDengine。
55 1
|
6月前
|
JavaScript 网络安全 开发工具
[保姆级-从0到1]利用hexo+github托管实现搭建个人博客
[保姆级-从0到1]利用hexo+github托管实现搭建个人博客
|
缓存 JavaScript 网络安全
基于Hexo的主题Fluid搭建Github博客
基于Hexo的主题Fluid搭建Github博客
165 1
|
6月前
|
资源调度 前端开发 JavaScript
不花一分钱,用Hexo和GitHub Pages搭建个人博客🏢
不花一分钱,用Hexo和GitHub Pages搭建个人博客🏢
169 0
|
6月前
|
存储 安全 Serverless
用 Github Actions 自动部署阿里云函数计算 FC
介绍了如何配置阿里云函数计算(FC)与GitHub Actions集成以实现自动部署。首先在阿里云创建函数,然后在项目根目录创建`s.yaml`文件配置Serverless Devs。接着在GitHub仓库中设置 Secrets 存储阿里云账号信息,并创建名为`aliyun-fc-deploy.yaml`的工作流文件来定义GitHub Actions。当代码推送到`master`分支时,Actions会自动部署到函数计算。最后,成功配置后,提交代码会触发自动部署,并可在GitHub Actions和阿里云控制台查看部署状态。
607 3
|
数据采集 JavaScript 搜索推荐
hexo搭建github.io博客
hexo搭建github.io博客
177 0
|
6月前
Hexo博客添加GitHub评论功能
Hexo博客添加GitHub评论功能
126 0