首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >travis-ci + github + hexo 持续集成

travis-ci + github + hexo 持续集成

作者头像
leader755
发布2022-03-09 13:57:41
发布2022-03-09 13:57:41
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

Hexo 博客源代码 GitHub 托管

1.注册 travis-ci

Travis CI 的网站有两个, travis-ci.org 专门针对开源项目,GitHub 上所有的公开仓库都能够免费使用; travis-ci.com 针对私有及商业项目,新用户前 100 次构建是免费的,后面就要收费了。

2.登录 Travis CI 网站

  1. 前往 Travis-ci.com and Sign up with GitHub.
  2. 接受授权
  3. 选择你想要使用 Travis CI 的仓库 或者 你也可以在 Github-settings-Applications-TravisCI-Configure 中去更新配置;
  4. 在你仓库怎增加 .travis.yml 文件,这个文件定义了构建的步骤,例如安装依赖等等。
  5. .travis.yml 文件推送到你的远端仓库,然后就会触发 Travis CI 构建;
  6. 登录 Travis CI然后选择你的仓库查看构建任务的执行详情;

3.配置 Travis CI

1>网页端配置

首先进入 Travis CI 官网,这里我们使用的是免费版的,因为考虑到一般放在 GitHub 上的博客都是公开的,所以不需要付费版本。如果有私有仓库要使用这种方式,可以使用 付费版的 Travis CI。然后直接通过 GitHub 账户登陆即可,登陆后可以看到我们的共有仓库,找到博客的仓库,我这里是选择 blog-master 源码仓库(博客仓库:leader755.github.io),把旁边的勾勾上,然后点击旁边的 Settings 进入设置页面。

在设置页面中,General 中只勾选 Build pushed branches,表示当有新的代码 push 到 GitHub 仓库时,自动执行构建任务。其他设置保持默认即可。

接下来为 Travis 添加对 GitHub 仓库的读写权限。进入 Personal access tokens 页面,点击 Generate new token,选择 token 权限(这里直选 repo 即可),设置别名并生成。然后将生成的 token 值复制。

接着在原来 Travis 的设置界面添加 token。如图所示:

在 Name 中填入 token 的别名,Value 中填入刚刚得到的 token,然后点击 Add 进行添加即可。注意 token 一旦生成,只能在生成时得到其值,后面无法查看。所以如果还有需要,可以记下来或者重新生成新的 token。

2>Travis 配置文件

接下来还需要编写 Travis 的配置文件,用于指定构建时使用哪些命令。配置文件名为 .travis.yml,是自动化构建的配置文件。文件内容示例如下:

代码语言:javascript
代码运行次数:0
运行
复制
# 指定构建环境是Node.js,当前版本是稳定版 (stable),版本这里我们选择最新的长期支持版本( LTS) 应该就够用了
anguage: node_js
node_js:
  - lts/*  # 稳定版 (stable) ,最新长期支持版( - lts/* )

# 指定缓存模块,可加快编译速度
cache:
  directories:
    - node_modules

# 在构建之前
before_install:
  - export TZ='Asia/Shanghai' # 更改时区
  - npm install -g hexo-cli # 安装hexo环境

#部署环境的安装(安装一个部署插件)
install:
  - npm install
  - npm install hexo-deployer-git --save

before_script:
 #

# 执行清缓存,生成网页操作
script:
  - hexo clean && hexo g

after_script:  # 未能成功
  - git config user.name "Leader755"
  - git config user.email "1181012791@qq.com"
   # 替换同目录下的_config.yml文件中gh_token字符串为travis后台刚才配置的变量,注意此处sed命令用了双引号。单引号无效!
  - sed -i "s/gh_token/${GH_TOKEN}/g" ./_config.yml
  - hexo deploy

    # 版本 二(未能成功)
  # - cd .deploy_git
  # - git checkout master
  # - cd ../
  # - sed -i'' "s~${GH_REF}~${GH_TOKEN}:x-oauth-basic@${GH_REF}~" _config.yml
  # - hexo d > log.txt 2>&1
  # - cat log.txt | sed "自动构建Travis CI Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')"
  # - echo "自动构建Travis CI Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')" # 构建后输出时间标识

    # 版本三(能正常构建提交到博客 leader755.github.io,但是并不是使用 hexo d  命令触发的)
    # after_script:
  # - cd ./public
  # - git init
  # - git config user.name "your-git-name"
  # - git config user.email "your-email-address"
  # - git add .
  # - git commit -m "Travis CI Auto Builder at $(date +'%Y-%m-%d %H:%M:%S')"
  # - git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master


# 指定博客源码分支,Travis CI 监控哪一个分支的变动,这里是 master 分支(若博客备份文件和 GitHub Pages 共用一个仓库的话需设置为博客备份文件所在分支)。
branches:
  only:
    - master

# End: Build LifeCycle

# configure notifications (email, IRC, campfire etc)
# please update this section to your needs!
# https://docs.travis-ci.com/user/notifications/
notifications:
  email:
    - 1181012791@qq.com
  on_success: change
  on_failure: always

到这里我就出问题了,虽然能成功触发构建,但是并不能使用 hexo d 发布到 leader755.github.io 这个博客仓库。目前还没找出问题在哪里,出现问题地方应该在生命周期 after_script: ,如果有知道还请留言回复,感激不尽。虽然没有成功使用吧。但是也算对 travis-ci 有初步的认识吧。继续折腾吧。

4.认识 Job Lifecycle–Job 的生命周期

Travis CI 为每种编程语言提供默认构建环境和默认的阶段集。 创建虚拟机为你的 Job 提供构建环境,将存储库克隆到其中,安装可选的插件,然后运行构建阶段。 job 的声明周期,主要包含两大部分: install:安装依赖,官网有专门讲解的 Installing Dependencies script:运行构建脚本; 在 installation 阶段之前(beofore_install)、在 script phase 之前(before_script)或之后(after_script),你可以运行自定义命令; 当构建成功或失败置换后,可以使用 after_success(例如构建文档)或 after_failure(例如上载日志文件)阶段执行其他操作(actions)。 在 after_failure 和 after_success 中,您可以使用$TRAVIS_TEST_RESULT 环境变量获取构建结果。

完整的 job 生命周期(包括三个可选的部署阶段,以及在检出 git 存储库 和更改到存储库目录) 如下:

  • apt addons** 可选安装**
  • cache components** 可选安装**
  • before_install
  • install
  • before_script
  • script
  • before_cache (for cleaning up cache) 可选
  • after_success or after_failure
  • before_deploy 可选
  • deploy 可选
  • after_deploy 可选
  • after_script

一次构建任务可有许多 job 组成。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hexo 博客源代码 GitHub 托管
  • 1.注册 travis-ci
  • 2.登录 Travis CI 网站
  • 3.配置 Travis CI
    • 1>网页端配置
    • 2>Travis 配置文件
  • 4.认识 Job Lifecycle–Job 的生命周期
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档