跳到主要内容

使用TravisCI自动构建

· 阅读需 3 分钟

前言

最近发现了个很好用的东西:TravisCI,能自动构建项目。其实,持续集成我早就有所了解,不过没怎么操作过。以前也知道TravisCI,但没有相关需求,所以就没怎么接触。这几天在找一个适合做笔记的静态网站程序,发现了MkDocs挺不错的,也看了一些静态博客程序,比如纸小墨。不过,感觉方便的不容易定制外观,因为考虑到Hexo还是用的人比较多,且我对Hexo已经有所了解,就懒得去折腾新的静态博客了。但是,在看纸小墨时有了重大发现。

在看纸小墨时,找到了使用TravisCI自动构建博客并部署,这样,用户只需要写博客,然后Push就行了,TravisCI会自动完成静态博客的构建与部署,只需要一份TravisCI配置(.travis.yml)就行了!

想想在写代码时,提交后自动编译、运行测试,不需要手动编译测试,真的很方便。我以为这样的服务应该是收费的,就很长时间里没有去了解。最近了解一下,才发现解决了我多年来的痛点。难怪很多项目的README里会显示编译状态,原来如此。。。

TravisCI和GitHub结合的比较好,另外还有其它的持续集成工具,如Jenkins

配置

TravisCI的配置也不难,采用的是YAML格式,文件名是.travis.yml,放在项目的根目录。每次Push后会触发TravisCI的启动运行。

以下是构建MkDocs的配置:

language: python
python:
- "3.5"
install:
- pip install mkdocs
- pip install python-markdown-math
script:
- mkdocs build --clean
- mkdocs build
after_success: |
if [ -n "$REPO_TOKEN" ]; then
cd "$TRAVIS_BUILD_DIR"
cd site
git init
git add .
git -c user.name=$GITHUB_NAME -c user.email=$GITHUB_EMAIL commit -m "Auto Deployment"
git push -f -q https://$GITHUB_NAME:$REPO_TOKEN@$REPO master:gh-pages
cd "$TRAVIS_BUILD_DIR"
fi

GITHUB_NAMEGITHUB_EMAILREPO_TOKENREPO都是配置的环境变量,在TravisCI的项目设置里可以进行配置:

其中,REPO_TOKEN可以在GitHub Token管理生成,需要repo权限,这样TravisCI才能push代码。

可以看到,其实就是配置了一些脚本,注意命令别写错了,特别是git push。