运用背景
这段时间有写GITBOOK的需要,但是自己平时都是在自己的电脑上用Typora
写完笔记之后,再用自己写的一个bat脚本执行后生成需要的文件部署到coding pages
(github不支持私有项目部署pages,但是又不想占用一个repo在github上,所以放在了腾讯上)。这样执行有一个问题,挺麻烦的,而且执行时间长不说,会有个文件夹一直放在那里,强迫症看着难受啊。后来想到有持续集成的工具,第一次是想用Travis
来部署,执行任务,但是它对开源项目永久免费,对私有项目是收费的,so,考虑到最近github开放了action
的使用,目的是代替Travis
,想着尝试着用一用。
Action-GitBook
gitbook本质就是个nodejs的任务生成的文件。在node的环境下执行后就行了,所以在这个action中我选择了node的运行环境来跑任务,系统选择的是windows,使用mac和ubuntu,npm安装全局命令居然在action里报没有权限!!!!!!!这是不能忍的啊,好在提供了Windows系统,规避了这个问题。
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| name: 自动部署gitbook
on: [push]
jobs: build: runs-on: windows-latest strategy: matrix: node-version: [12] steps: - name: 拉取代码 uses: actions/checkout@v1 - name: 配置环境 uses: actions/setup-node@v1 with: node-version: ${{ matrix.node_version }} - name: 安装gitbook及插件 run: | call npm install -g gitbook-cli call npm install -g gitbook-summary call gitbook -v call gitbook install - name: 生成_book run: | call book sm call gitbook build - name: push文件 run: | cd ./_book git init git config --local user.name "${{ secrets.U_NAME }}" git config --local user.email "${{ secrets.U_EMAIL }}" git add * git commit -m "update" git push --force "https://${{ secrets.GH_USER }}:${{ secrets.GH_TOKEN }}@${{ secrets.GH_REF }}" master env: CI: true
|
![运行结果]()
这样当我每次push我的笔记到github的时候都会触发这个任务,然后生成我的gitbook部署到我另一个repo去。再也不用我去手动的执行生成了,然后换了电脑还得再次配备全局的环境。
Action-Blog
既然gitbook都可以,那hexo
的Blog也应该可以的啦。hexo的环境配置可是最麻烦的,比gitbook麻烦多了,二期换了电脑还得安装一系列环境和插件。采用这种方式就简单了啊,平时自己只需要写文章,反正这个库也肯定需要版本管理,那个给它加一个持续集成的任务不就不需要管后续的问题了吗。
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 30 31 32 33
| name: 自动部署Blog
on: [push]
jobs: build:
runs-on: windows-latest
strategy: matrix: node-version: [12]
steps: - name: 拉取代码 uses: actions/checkout@v1 - name: 配置环境 uses: actions/setup-node@v1 with: node-version: ${{ matrix.node_version }} - name: 安装hexo及插件 run: | call npm install -g hexo call npm install - name: 生成文件并部署 run: | call git config --global user.name "zytomorrow" call git config --global user.email "z794672847@gmail.com"
call hexo g -d env: CI: true
|
额外需要注意一点就是hexo的部署这里采用的是自动部署,所以需要设计到权限,可以修改博客根目录的_config.yml
文件,将里面的部署地址采用token的方式描写,这样就可以直接部署,不再需要git 的账户和密码了。