Travis CI 自动化构建 Hexo 博客
前提条件:
- 必须使用一个public的项目, 然后登陆https://travis-ci.org/ 进行关联.
- 已存在一个hexo的可以跑起来的项目
在你的hexo源码项目, 取出master分支中 添加配置文件.travis.yml,并推送到acc8226.github.io
项目中.
配置GH_TOKEN
在github添加Access Token,在右上角账号的settings->Personal access tokens.点击generate new token来生成新token
回到Travis官网,在设置中填入刚复制的token,取名为GH_TOKEN
,这个名字需要写到下面的配置文件中.
配置GH_REF
这个家伙写在配置文件的env中
配置
install:
- npm install
script:
- hexo g
after_script:
- cd ./public
- git init
- git config user.name "Travis-CI"
- git config user.email "Travis-CI@feipig.fun"
- git add .
- git commit -m "Update docs with TRAVIS-CI."
- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
# safelist
branches:
only:
- master
language: node_js
node_js: stable
git:
depth: 1
env:
global:
# 使用https, 若使用ssh会出错
- GH_REF: github.com/acc8226/acc8226.github.io.git
要使用https协议的仓库地址,使用ssh仓库地址会失败。
配置完成后推送到仓库中,我们就能看到网站https://acc8226.github.io/ 中在部署了。
转用 coding Pages 服务
由于 github io 服务访问慢, 所以这里选择 coding Pages 服务
在 Coding 的”个人设置”页面中找到访问令牌,新建一个新的访问令牌,这里我们选第一个权限即可,因为我们只需要为 Travis 提供基本的读写权限,这样我们会生成一个 Token,这里注意保存 Token,因为它在这里只显示这一次,我们将 Token 填写到 Travis CI 的后台. 取名为CODING_TOKEN
coding利用令牌访问代码仓库
参加帮助文档
https://help.coding.net/docs/member/tokens.html
在设置 Scope 权限选项中勾选 project:depot 后,可以用于访问代码仓库。
git clone https://testuser:90ed7a169febb12d17e14aa5531827476f6b3a4e@test.coding.net/test/testRepo.git
由此可知需要额外配置
env:
global:
# Coding Pages
- USER_NAME: aleevz
- CODING_REF: git.dev.tencent.com/aleevz/aleevz.coding.me.git
解决时区不统一的问题
before_install:
- export TZ='Asia/Shanghai' # 解决时区不统一的问题
代码构建后传到coding的.travis.yml
before_install:
- export TZ='Asia/Shanghai' # 解决时区不统一的问题
install:
- npm install
script:
- hexo g
after_script:
- cd ./public
- git init
- git config user.name "likai-Travis"
- git config user.email "likai@feipig.fun"
- git add .
- git commit -m "Update with TRAVIS-CI."
#- git push --force --quiet "https://${GH_TOKEN}@${GH_REF}" master:master
- git push --force --quiet "https://${USER_NAME}:${CODING_TOKEN}@${CODING_REF}" master:master
# safelist
branches:
only:
- master
language: node_js
node_js: stable
git:
depth: 1
env:
global:
# 使用https, 若使用ssh会出错
# - GH_REF: github.com/acc8226/acc8226.github.io.git
# Coding Pages, 在这里不使用githubio, 是因为这个访问的速度比 github 快
# git clone https://testuser:90ed7a169febb12d17e14aa5531827476f6b3a4e@test.coding.net/test/testRepo.git
# 1d87fd91b6c6e01ed00422267a120a7775fdef71
- USER_NAME: fhjWqJkjxt
- CODING_REF: e.coding.net/aleevz/aleevz.coding.me.git
参考
travis-ci 官网
https://travis-ci.org/
https://blog.csdn.net/qq_36759224/article/details/100879609
基于Travis CI实现 Hexo 在 Github 和 Coding 的同步部署