前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Travis CI 自动部署 Hexo

使用 Travis CI 自动部署 Hexo

作者头像
李振
发布2021-11-26 15:00:43
6590
发布2021-11-26 15:00:43
举报
文章被收录于专栏:乱码李

Travis CI

Travis CI 是一个持续集成的平台,我们可以使用其自动构建部署的功能帮我们简化 Hexo 博客的部署流程。

为什么要用 Travis CI

因为懒。

Hexo 部署 Blog 到 GitPage 通常需要三部曲:

代码语言:javascript
复制
$ hexo clean
$ hexo g
$ hexo deploy

很简单吧,但是如果是一个新的环境,你需要安装一大堆工具和依赖,比如要装 Node,要装 Hexo,还有 package.json 里面的各种依赖,虽然 Npm 提供了强大的包管理功能,但是有时候就是不方便。

使用 Travis,你只需要本地有一个 git 就可以了。

每当你 Push 一个 commit 到 Github 时,Travis CI 会检测到你的提交,并根据配置文件自动运行一些命令,通常这些命令用于测试,构建等等。

那么在我们的需求下,就可以用它运行一些 hexo deploy -g 之类的命令用来自动生成、部署我们的网站。

使用方法

使用 Travis 构建 Hexo 只需要三步:

  1. 登录 Travis,配置仓库
  2. 在 Travis CI 配置 GitHub 的 Access Token
  3. Blog 根目录下配置 .travis.yml

配置 Travis 仓库

首先使用 GitHub 账号登录Travis CI,登录后会进入如下页面

点击「My Repositories」后面的 +,添加要自动构建的仓库

这里会显示你 GitHub 下所有的项目,选中博客仓库,我的博客在GitHub上的仓库名字就叫做 Blog。然后点击仓库名进入仓库配置页面。

选择 Settings,配置选择如下:

  • Build only if .travis.yml is present:是只有在 .travis.yml 文件中配置的分支改变了才构建
  • Build pushes:当推送完这个分支后开始构建

这个时候,我们已经开启要构建的仓库,但是如何将构建完成后的文件推送到 Github 上呢?

GitHub Access Token

Github 支持一种特殊的 URL 来执行 push/pull 等等操作,而不需要输入用户名密码。但这需要事先在 Github 上创建一个 token。

首先去 GitHub Settings 页面选择 Personal access tokens,如果你已经登录了,点击链接进去即可。

选择 Generate new token,配置如下:

点击绿色确认按钮,copy 刚刚生成的 token。回到 Travis Settings 页面,将复制的 token 加入到环境变量,并命名为 GitHub_token

.travis.yml

上述步骤完成后,只需要在你 Blog 源代码的根目录下增加一个 .travis.yml 文件, 我的文件内容如下:

代码语言:javascript
复制
language: node_js
node_js: stable

install:
  - npm install

script:
  - hexo clean
  - hexo g

after_script:
  - cd ./public
  - git init
  - git config user.name "YOUR GITHUB USER NAME"
  - git config user.email "YOUR GITHUB EMAIL"
  - git add .
  - git commit -m "Update"
  - git push --force --quiet "https://${GitHub_token}@${GH_REF}" master:master

branches:
  only:
    - master
env:
 global:
   - GH_REF: github.com/Leo555/Leo555.github.io.git

将上面的 name 和 email 还有 GH_REF 修改成你自己的。

这里用 Linux 环境变量的引用方式将 GH_REF 和 GitHub_token 其引入 git push 的 url,因此 push 方法就能通过 GitHub OAuth 授权,完成自动 push 的功能。

此时就万事俱备了。

测试

使用 Hexo 创建新的 Blog 文件,然后 push 到 GitHub 上。

代码语言:javascript
复制
$ hexo new test.md
$ git add .
$ git commit -m "add new post test"
$ git push origin master

然后回到 Travis 主页面,发现部署已经开始了

在下面的 log 中可以看到部署的详细情况。

包括 nvm installnpm installhexo g 等命令都在这里执行。

总结

有了自动部署的功能,从此以后就可以将关注点集中在博客内容上,换了平台和环境也没有任何影响。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Travis CI
    • 为什么要用 Travis CI
    • 使用方法
      • 配置 Travis 仓库
        • GitHub Access Token
          • .travis.yml
          • 测试
          • 总结
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档