Code & Fun

今天简单使用了一下Travis CI

起因

因为搭建Django-blog时,每次更新一次代码,就需要手动登陆到服务器上进行一系列操作来重启服务,感觉过于麻烦且容易出错,因此想使用 CI/CD 工具来自动化这一过程。

所以这里就简单了解了一下 CI/CD,并尝试使用 Travis CI 来实现 Hexo 的自动化部署。

但考虑到 Travis CI 是一个 SaaS 服务,需要开发服务器的权限来完成部署,所以后面应该会先将Django-blog的部署方式转换成Docker的方式,然后在搭建DroneJenkins来完成 CI/CD

CI/CD

  • CI(Continuous Integration)即持续集成,个人理解是在提交代码后进行一些了测试来确保代码的正确性,保证每个开发者每次提交都会进行测试。
  • CD(Continuous Deploy)即自动部署,个人理解是在完成了测试后将代码自动化的部署到服务器上,这样就不需要开发者或运维来手动进行代码拉取,设置配置,重启服务等操作了,而是将其自动化。这个东西其实就是我想要的

Travis CI

要使用Travis CI来完成自动化部署hexo可以分为以下几个步骤:

  • Travis CI网站上将 repo 加入构建
  • 在Github生成Github Access Token并将其加入到Travis CI的环境变量中,这里使用的变量名是GITHUB_TOKEN
  • 在repo上添加一个Travis CI的配置文件:

下面是.travis.yml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
langaue: node_js
node_js: stable

branches:
only:
- save

before_install:
- npm install -g hexo-cli
- git clone https://github.com/smduan/next.git themes/next

install:
- npm install
- npm install hexo-deployer-git --save

script:
- mv _next_config.yml themes/next/_config.yml
- hexo clean
- hexo generate

after_script:
- git config user.name "wuxiaobai24"
- git config user.email "wuxiaobai24@foxmail.com"
- sed -i "s/GITHUB_TOKEN/${GITHUB_TOKEN}/g" ./_config.yml
- hexo deploy

本文首发于Code & Fun