Hugo搭建博客<二>:使用Travis.ci自动部署到github pages和coding.net pages
文章目录
【注意】最后更新于 July 28, 2019,文中内容可能已过时,请谨慎使用。
写在前面
使用Hugo生成静态博客后,需要手动把内容上传到对应pages的仓库,这种操作全程手动。现在有Travis.ci,一个自动测试和部署工具网站,你只需要把hugo处理前的文件上传到github,Travis.ci就会自动通过Hugo生成静态博客内容,并上传到pages的对应仓库。 需求有3个
- 1 保存博客内容的github上仓库hugo-blog
- 2 用户对应的github-pages的对应仓库 user.github.io,我的是tainzhi.github.io
- 3 Travis.ci上设置的hugo-blog与tainzhi.github.io的对应trigger
具体流程如下:
- 1 本地编写博客,并上传到github仓库hugo-blog
- 2 因为Travis.ci对hugo-blog设置了trigger,它检测到hugo-blog有推送,就执行一系列操作,生成静态博客内容,把内容推送到github上pages对应的仓库tainzhi.github.io
- 3 在浏览器中输入
https://tainzhi.github.io
就可浏览到新博客
Travis.ci注册与使用
Travis.ci用github账号注册。注册后,会看到自己github上的仓库列表,选择hugo-blog并打开。在github token网站生成tokens,复制到刚才Travis.ci上hugo-blog对应的设置中的环境变量,命名为GithubToken
。同理,在coding.net上生成token拷贝到环境变量,命名为CodingNetToken
注意: Token是有使用期限的, 一年后就会过期, 需要重新申请token
自动部署到github pages
在hugo-blog中需要添加一个配置文件.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 26 27 28 29 |
# https://docs.travis-ci.com/user/deployment/pages/ # https://docs.travis-ci.com/user/languages/python/ install: - uname -a - wget https://github.com/gohugoio/hugo/releases/download/v0.56.0/hugo_0.56.0_Linux-64bit.deb - sudo dpkg -i hugo*.deb - hugo version - pwd script: - hugo - echo 'Hugo build done!' after_script: - git clone "https://tainzhi:${GithubToken}@${Github_REF}" github-pages - rm github-pages/public -rf - cp ./public/* github-pages -rf - cd github-pages - git add . - git commit -m "Update Blog By TravisCI With Build $TRAVIS_BUILD_NUMBER" - git tag v0.0.$TRAVIS_BUILD_NUMBER -a -m "Auto Taged By TravisCI With Build $TRAVIS_BUILD_NUMBER" # Github Pages - git push --force --quiet "https://tainzhi:${GithubToken}@${Github_REF}" master:master - git push --quiet "https://tainzhi:${GithubToken}@${Github_REF}" master:master --tags env: global: # Github Pages - Github_REF: github.com/tainzhi/tainzhi.github.io.git |
配置全是一些常见操作,很容易理解:先安转hugo,然后在当前目录下用hugo生成静态博客内容到public
默认目录,接着clone仓库tainzhi.github.io,把public里面的内容拷贝到刚下载的仓库,最后上传并打上tag。
注意token的用法: 用token操作仓库git clone https://username:${Token}@${repo_ref}
部署到coding.net pages
1 2 3 4 5 6 7 |
# 在after_script中添加 # Coding Pages - git push --force --quiet "https://qfq:${CodingNetToken}@${CodingNet_REF}" master:master - git push --quiet "https://qfq:${CodingNetToken}@${CodingNet_REF}" master:master --tags # 在env中添加 # Coding Pages - CodingNet_REF: git.coding.net/qfq/qfq.coding.me.git |
最终内容请参考我的博客配置