本文基于熟练搭建基于github+hexo搭建博客的基础上,并且对github简单操作,并且会使用通过ssh的方式提交代码到github上。
PS:如果你只有Windows电脑,那请放弃!或者选择使用Linux、macOS系统!
准备工作
- 通过github账号登录Travis
- 并且启用已经在github上创建好的博客项目,如下图
- 点击右侧的
Setting
,按下图配置(红框处,暂时可以不管)
修改原来的博客项目
- 在根目录增加
.travis.yml
文件和.travis
文件夹 - 修改
.travis.yml
文件,内容如下language: node_js node_js: stable install: - npm install script: - hexo d -g
- 我们用
hexo deploy
去发布博客,会发现Travis后台提示说没有权限 - 这是因为我们用
git@github.com:[Your name]/[Your project].git
的方式去拉取代码的,并且在hexo的配置文件中,我们也是这样配置使用ssh方式拉取、推送代码的 - 而Travis环境中没有对应的ssh key,所以不能推送代码。
为Travis创建SSH
首先使用你已经生成好的ssh key私钥/公钥文件
将公钥上传到github上
将秘钥复制到博客目录下(有.git文件夹的那一层),并改名为
id_rsa_github
[随意]安装Travis Client
首先确保已经安装了Ruby,并且大于等于2.0.0版本
[sunhao@sunhaode-MacBook-Pro blog]$ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
安装Travis Client
# 如果是Mac或者Linux,需要加sudo gem install travis
简称是否正确安装
[sunhao@sunhaode-MacBook-Pro blog]$ travis version 1.8.9
开始加密SSH key
# 如果是github项目,先用travis login登录,如图
# 通过命令travis encrypt-file id_rsa_github -add加密私钥 [sunhao@sunhaode-MacBook-Pro blog_hexo]$ travis encrypt-file id_rsa_github -add encrypting id_rsa_github for sunhao-java/blog_hexo storing result as id_rsa_github.enc storing secure env variables for decryption Make sure to add id_rsa_github.enc to the git repository. Make sure not to add id_rsa_github to the git repository. Commit all changes to your .travis.yml.
这个时候,Travis会自动把一些参数上传到Travis的网站上了,就是第二张图展示的
暂时不需要关注的红框内容
,记住前面的key,下文需要用到然后复制生成的
enc
文件到.travis
文件夹下并且删除原来的
id_rsa_github
文件
修改.travis.yml
- 修改前面创建的
.travis.yml
文件 - 这个文件里有可能有一段话,大概如下,可以删掉,是因为前面使用了–add参数
openssl aes-256-cbc -K $encrypted_65cc9ea56965_key -iv $encrypted_65cc9ea56965_iv -in .travis/id_rsa_github.enc -out ~/.ssh/id_rsa_github -d
- 在这个文件的末尾加上如下的命令:
before_install: - openssl aes-256-cbc -K $encrypted_65cc9ea56965_key -iv $encrypted_65cc9ea56965_iv -in .travis/id_rsa_github.enc -out ~/.ssh/id_rsa_github -d - chmod 600 ~/.ssh/id_rsa_github - eval $(ssh-agent) - ssh-add ~/.ssh/id_rsa_github - cp .travis/ssh_config ~/.ssh/config - git config --global user.name \'Your Name\' - git config --global user.email \'Your Email\'
- 附上上面的
.travis/ssh_config
文件内容:Host github.com User git StrictHostKeyChecking no IdentityFile ~/.ssh/id_rsa_github IdentitiesOnly yes
结尾
- 至此,配置以及全部OK了
- 可以写一篇博客,并push到github上
- 然后到Travis的控制台观察,一次构建就被触发了
- 稍等片刻就可以在博客上看到你刚刚写的文章了
Tks,安利一下我写的东西
- 博客:https://www.crazy-coder.cn/
- 开源的代码:https://github.com/lodsve/lodsve-framework
- 欢迎提Issue和PR