其实
原理同《coding持续集成部署hexo博客》相似,只是换了个平台而已,仅此而已。但是可以配合使用Github的话可以使用jsdelivr CDN(中国由网宿cdn提供)
使用
GitHub Actions同Travis CI差不多都是持续集成服务,感兴趣可以到官网了解 Features • GitHub Actions
由于是自家的服务,所以每个项目都是内置自带Actions的,需要使用只需在项目页面的Actions子页面,选择你要的脚本或是使用自己的脚本,这里选择set up a workflow yourself

之后只要复制以下代码即可(代码来自@JerryC)
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 47 48 49 50
| name: 自动部署 Hexo
on: push: branches: - master
jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [10.x]
steps: - name: 开始运行 uses: actions/checkout@v1
- name: 设置 Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }}
- name: 安装 Hexo CI run: | export TZ='Asia/Shanghai' npm install hexo-cli -g
- name: 缓存 uses: actions/cache@v1 id: cache-dependencies with: path: node_modules key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}
- name: 安装插件 if: steps.cache-dependencies.outputs.cache-hit != 'true' run: | npm install
- name: 部署博客 run: | hexo clean && hexo g cd ./public git init git config user.name "${{secrets.GIT_NAME}}" git config user.email "${{secrets.GIT_EMAIL}}" git add . git commit -m "Update" git push --force --quiet "https://${{secrets.GH_TOKEN}}@${{secrets.GH_REF}}" master:master
|
需要关注的就是4个变量和1个执行命令
变量:GIT_NAME,GIT_EMAIL,GH_TOKEN,GH_REF,分别是git的姓名,邮箱和token及仓库地址
token获取地址,Settings——Developer settings——Personal access tokens——Generate new token创建一个只有public_repo(公共仓库)权限的token即可,得到一个类似d6ce252bf70f925f32c36850a14e276b915b005f


仓库地址为:github.com/JackCh3n/n0bige.git
这一句完整的命令就是使用Token强制提交
1
| git push --force --quiet https://d6ce252bf70f925f32c36850a14e276b915b005f@github.com/JackCh3n/n0bige.git master:master
|
变量则是在项目,settings,Secrets,创建并添加即可,之后脚本就可以通过${{secrets.GIT_NAME}}
的方式获取变量的值了,为了保护隐私/安全?

执行命令:原来是hexo clean && hexo g && hexo douban && gulp
,就是hexo缓存清理,hexo生成静态文件,hexo 豆瓣页面和html,css,js压缩,这里可以根据自己的需求做修改,如我就将最后的两个都删了,最终得到hexo clean && hexo g
最后可以在项目页—— Actions——All workflows查看脚本运行的日志和情况

jsdelivr
一个开放的CDN,提供npm,GitHub,WordPress等项目的镜像功能(国内用的是网宿CDN)
使用方法copy官方的介绍,支持版本号、分支、列表或是获取精简版的js和css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| //加载任何GitHub版本、提交或分支 //注意:我们建议对支持npm的项目使用npm https://cdn.jsdeliver.net/gh/user/repo@version/file
//加载jQuery v3.2.1 https://cdn.jsdeliver.net/gh/jquery/jquery@3.2.1/dist/jquery.min.js
//使用版本范围而不是特定版本 https://cdn.jsdeliver.net/gh/jquery/jquery@3.2/dist/jquery.min.js https://cdn.jsdeliver.net/gh/jquery/jquery@3/dist/jquery.min.js
//完全省略版本以获得最新版本 //你不应该在生产中使用这个 https://cdn.jsdeliver.net/gh/jquery/jquery/dist/jquery.min.js
//将“.min”添加到任何JS/CSS文件以获取精简版本 //如果不存在,我们会为您生成 https://cdn.jsdeliver.net/gh/jquery/jquery@3.2.1/src/core.min.js
//在末尾添加/以获取目录列表 https://cdn.jsdeliver.net/gh/jquery/jquery/
|
注意:jsdelivr 仅支持20M以下的文件加速,20M以上会出现无法下载的现象。
仓库超过50M也无法显示列表:Package size exceeded the configured limit of 50 MB. Try https://github.com/JackCh3n/pantest/tree/master/ instead.
单文件大小超过20M:File size exceeded the configured limit of 20 MB.
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
| jsdelivr CDN文件上限测下载链接 https://cdn.jsdelivr.net/gh/JackCh3n/pantest/1m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/10m.zip
https://cdn.jsdelivr.net/gh/JackCh3n/pantest/20m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/21m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/22m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/23m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/24m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/25m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/26m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/27m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/28m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/29m.zip
https://cdn.jsdelivr.net/gh/JackCh3n/pantest/30m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/40m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/50m.zip https://cdn.jsdelivr.net/gh/JackCh3n/pantest/55m.zip window生成指定大小文件 fsutil file createnew c:\1 1024 # 1024 = 1k # 10240 = 10k # 1024000 = 1mb # 10240000 = 10mb # 20480000 = 20mb # 25600000 = 25mb # 30720000 = 30mb # 40960000 = 40mb # 51200000 = 50mb # 56320000 = 55mb
linux生成指定大小文件 # /dev/zero 是 Linux 提供的一个特殊的字符设备(伪文件,Pseudo-devices) # 它的特点是可以永远读该文件,每次读取的结果都是二进制 0 #生成一个文件名为10M.zip的10M测试文件 dd if=/dev/zero of=/root/test/10M.zip bs=1M count=10
|
参考