近期Coding Pages老是抽风,所以想换一个地方托管博客,Firebase是谷歌搞的一个云服务(没错 可以访问),据说和Github Pages一个CDN服务商,感觉还是比Gayhub更快一点。
Firebase Hosting
Firebase Hosting
自带SSl
,算是很方便了,
1G存储
和
10G月流量
对于博客来说足以;不过也有一些缺点,手动部署需要用到他的命令行工具会比较麻烦而且需要番茄(后面会讲自动化的部署),试了一下把图片放上去加载特别慢,所以图片存储还是用coding的吧。
添加项目、绑定域名这些就不再赘述,可以参考其他文章。
Travis-CI自动化部署
这个其实比较麻烦,但是一劳永逸。
Travis-CI
说白了是一个
追踪你的Github项目触发自动化操作
的东西,整个Hexo博客目录作为一个Github项目,每次更改Push之后Travis-CI会自动运行
hexo g
还有部署到Firebase的一些命令,结束之后,你的博客就已经更新了。
其实也有很多其他文章讲到,讲一下我遇到的一些问题。
Firebase Token获取
运行
firebase login:ci –no-localhost
来授权获取TOKEN的时候无论是git-bash还是powershell都不能成功。
最后只能在VPS上操作,将出现的地址在本地浏览器打开,登录谷歌帐号后就会显示TOKEN了。
主题变成子项目
由于主题中包含的
.git
目录,提交的时候会被自动理解为子项目,可以手动略过这个目录一个个添加,也可以直接把目录删掉。
多个Firebase Hosting
一开始是设想把图片自动部署到另一个Firebase Hosting,Firebase部署的时候会读取
firebase.json
,不能手动指定,而且这个文件也只能指定一个Hosting。
要想多个需要切换目录,在包含图片文件夹的子目录中加入
firebase.json
指定另一个Hosting,而且不能用Travis自带的Firebase功能,要安装然后使用命令
firebase deploy –non-interactive –project ${FIREBASE_PROJECT} –token ${FIREBASE_TOKEN}
不过由于图片加载速度太慢后面也没有再用了。
Coding Pages存图片
大致和Github差不多,需要获取一个Token,然后就可以Push了。
新建令牌
,
git push -f “https://{CO_ID}:${CO_TOKEN}@${CO_REF}” master:master
,比Github多了个ID。
完整的.travis.yml内容
可以按需求添加其他的命令。
sudo: required
language: node_js
node_js: "10"
branches:
only:
- master
before_install:
- npm install hexo-cli -g
- npm install -g firebase-tools
install:
- npm install
script:
- cd public_assets
- git config user.name "Taosky"
- git config user.email "t@firefoxcn.net"
- git init
- git add .
- git commit -m "add assets"
- git push -f "https://{CO_ID}:${CO_TOKEN}@${CO_REF}" master:master
- cd ../..
- hexo g && hexo douban
- firebase deploy --non-interactive --project ${FIREBASE_PROJECT} --token ${FIREBASE_TOKEN}
参考
https://blog.chrnie.com/2018/03/08/%E4%BD%BF%E7%94%A8-Travis-CI-%E8%87%AA%E5%8A%A8%E5%8C%96%E9%83%A8%E7%BD%B2-Hexo-%E7%94%9F%E6%88%90%E7%9A%84%E9%9D%99%E6%80%81%E5%8D%9A%E5%AE%A2%E5%88%B0-Firebase-Hosting/
https://medium.com/@bartwijnants/continuous-deployment-to-firebase-hosting-using-travis-ci-e7d9c798ead4
https://rainylog.com/post/firebase-tutorial/
https://blog.erguotou.me/hexo-on-firebase.html