资讯专栏INFORMATION COLUMN

Travis CI + github + hexo 自动化部署

iliyaku / 567人阅读

摘要:是目前新兴的开源持续集成构建项目,采用格式,简洁清新独树一帜。目前大多数的项目都已经移入到的构建队列中。测试提交代码到中查看部署情况至此,整个部署完成,赶快自己尝试一下吧

Travis CI是目前新兴的开源持续集成构建项目,采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中。Travis-CI会同步你在GitHub上托管的项目,每当你commit push成功之后,就可以根据配置文件进行项目的构建发布。

作为一名苦逼(qiongsuan)程序员,想自己搞点什么,又苦于现在什么都收费,于是乎,有了本篇文章,满足了广大和我一样,囊中羞涩却又按耐不住一颗躁动的心的开发者们

之前用hexo搭建了一个博客,挂载在自己的github上,之所以选择这两者,因为他们都是开源的(其实为了免费),也因此,github域名无法在百度等搜索引擎备案,我的博客张吉成的博客主页也是毫无访问量可言T_T。
之前每次部署都是最基本的手动编译,打包,上传github,搞过一段时间的jenkins(有兴趣的朋友可以移步我的博客),由于没有自己的服务器,每次自己的电脑都要开着作为服务器,实在麻烦。后来无意间发现了Travis,功能强大且配置简单,还是免费的,简直完美,唯一的缺点是只支持github项目。

本文记录了配置Travis的全过程,构建步骤为:

本地开发完成,提交代码到github仓库;

github收到提交的更新,通知Travis;

Travis 收到github的提交通知,进行构建;

hexo 的安装使用本文就不做介绍了,可以参考之前的文章hexo常用命令,hexo创建文章&文章缩略图及banner&MarkDown

注册配置 Travis

打开Travis CI官网,进行注册,这里就不做太多赘述,推荐用github账户注册;

绑定你的github账户,此时Travis会同步你的github仓库,将你要监听的github仓库名选中,此时Travis会监听该仓库的push操作,并执行指定的脚本文件;

添加 .travis.yml

当我们提交代码后执行的一系列操作都是在 .travis.yml文件中配置的;

language: node_js  #設置語言
node_js: stable  #設置相應的版本
cache:
    apt: true
    directories:
        - node_modules # 緩存不經常更改的內容
install:
  # 执行安装操作
  ...
script:
  # 开始部署
  ...
after_script:
  # 部署后操作
  ...
branches:
  # 配置监听的分支
  only:
    - master #只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
  # 环境变量配置
  global:
    - GH_REF: github.com/***/blog.git #設置GH_REF,注意更改***

更详细的参数配置可以参考官网
如下是我的配置信息:

language: node_js  #設置語言

node_js: stable  #設置相應的版本

cache:
    apt: true
    directories:
        - node_modules # 緩存不經常更改的內容

before_install:
  - echo 安装hexo相关环境...

install:
  # - npm install -g cnpm --registry=https://registry.npm.taobao.org
  - cnpm install

before_script:
  - echo 正在清空缓存静态文件...
  - hexo clean                      # 清除缓存静态文件
  - echo 正在生成静态文件...
  - hexo g                          # 生成静态文件
  - cd ./public
  - ls -l

script:
  - echo 开始部署...
  - git init
  - git config --global user.name "${GH_username}"                          # 修改name
  - git config --global user.email "${GH_useremail}"                        # 修改email
  - git add ./
  - git commit -m "update"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master  # GH_TOKEN是在Travis中配置token的名稱

after_script:
  - echo 部署完成!

branches:
  only:
    - master                                                                # 只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
  global:
    - GH_REF: github.com/                                           # 设置 github 项目仓库地址
    - GH_username:                                                # 设置 github 用户名           
    - GH_useremail:                                              # 设置 github 绑定邮箱地址
生成github access Token 并 配置到 Travis
此步骤是为了使travis获得对github的操作权限,如git push
生成github access Token

如上图所示,登陆github并打开该页面,并新建token

如上图进行对应操作,生成token,注意token只显示一次,要保存好备用。

配置 access token 到 Travis

打开Travis CI 找到setting页面,填写对应的token名及上面步骤生成的token值,如下图:

细心的同学可能会发现我的 .travis.yml 文件中有下面这样一段配置

after_script:
  - echo 开始部署...
  - cd ./public
  - git init
  - git config --global user.name "yourname"  #修改name
  - git config --global user.email "youremail"  #修改email
  - git add ./
  - git commit -m "update"
  - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master  #GH_TOKEN是在Travis中配置token的名稱
  - echo 部署完成!
branches:
  only:
    - master #只監測master分支,master是我的博客源碼分支的名稱,可根據自己情況設置
env:
  global:
    - GH_REF: github.com/yourname/bolg.git #設置GH_REF,注意更改yourname

其中有两个变量,GH_REF是在env中配置的,而GH_TOKEN则是我们刚刚在设置中添加的github token,此时执行git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master命令就可以在不用输入用户名密码的情况下进行提交。

测试

提交代码到github中

查看部署情况

至此,整个部署完成,赶快自己尝试一下吧!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/101087.html

相关文章

  • Hexo 博客终极玩法:云端写作,自动部署

    摘要:配置触发方式一般会得到这么个语雀配置配置一个仓库的可以选择所有更新触发或者主动触发,主动触发的意思即发布需要勾选一个选项才会触发。 Hexo + Github + 语雀 + yuque-hexo +travis-ci+severless 打造全自动持续集成个人博客,云端写作,自动部署,完美体验~ 一、Hexo+Github 的痛点 1.为啥要用hexo+github? 作为一个程序猿,...

    AlphaWallet 评论0 收藏0
  • Hexo 博客终极玩法:云端写作,自动部署

    摘要:配置触发方式一般会得到这么个语雀配置配置一个仓库的可以选择所有更新触发或者主动触发,主动触发的意思即发布需要勾选一个选项才会触发。 Hexo + Github + 语雀 + yuque-hexo +travis-ci+severless 打造全自动持续集成个人博客,云端写作,自动部署,完美体验~ 一、Hexo+Github 的痛点 1.为啥要用hexo+github? 作为一个程序猿,...

    EsgynChina 评论0 收藏0
  • Hexo博客迁移之旅(Coding到腾讯云COS)+ Travis CI持续集成

    摘要:博客从迁移到腾讯云最近的服务一直不稳定,这两天访问还出现,重新部署也无法解决。码云自定义域名收费,只好迁移到腾讯云上了。不会配置的可以参考官方示例直接就发布到腾讯云上了,访问速度相当快,对也好。 Hexo博客从Coding迁移到腾讯云COS 最近coding的Pages 服务一直不稳定,这两天访问还出现404,重新部署也无法解决。国内访问GitHub Pages 不是很快,而且百度S...

    blastz 评论0 收藏0
  • Hexo博客迁移之旅(Coding到腾讯云COS)+ Travis CI持续集成

    摘要:博客从迁移到腾讯云最近的服务一直不稳定,这两天访问还出现,重新部署也无法解决。码云自定义域名收费,只好迁移到腾讯云上了。不会配置的可以参考官方示例直接就发布到腾讯云上了,访问速度相当快,对也好。 Hexo博客从Coding迁移到腾讯云COS 最近coding的Pages 服务一直不稳定,这两天访问还出现404,重新部署也无法解决。国内访问GitHub Pages 不是很快,而且百度S...

    _ang 评论0 收藏0
  • Hexo博客迁移之旅(Coding到腾讯云COS)+ Travis CI持续集成

    摘要:博客从迁移到腾讯云最近的服务一直不稳定,这两天访问还出现,重新部署也无法解决。码云自定义域名收费,只好迁移到腾讯云上了。不会配置的可以参考官方示例直接就发布到腾讯云上了,访问速度相当快,对也好。 Hexo博客从Coding迁移到腾讯云COS 最近coding的Pages 服务一直不稳定,这两天访问还出现404,重新部署也无法解决。国内访问GitHub Pages 不是很快,而且百度S...

    ivan_qhz 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<