对于静态博客来说,Hexo是一款很受欢迎的博客生成器。其拥有数百的主题和插件,方便我们部署和自定义博客内容。然而,很多生成器都有一个跟明显的缺点,当网站的文章越来越多时,生成所需要的时间也越来越久。如果电脑效能差的话,部署时间则会更加的久。 为了解决这个问题,采用自动化部署是一个绝佳的选择。现如今提供自动化部署的平台越来越多。像Travis CI,Github Actions。我们只需要把Hexo的目录推送到GitHub去,相关平台监测到对应的Repositories发佈变化,就会自动去执行编译,并把编译好的内容发布到博客Repositories去。
获取Coding Token
项目设置 --> 开发者选项 --> 项目令牌
权限要给全
获取Github Token
Personal settings --> Developer settings --> Personal access tokens
权限给repo,public repo,token要存好,不然没了只能重新获取
创建Actions
建立一个私有仓库,上传Hexo源代码
在Hexo目录的仓库,点击Actions
然后点击Set up a workflow yourself
输入以下代码
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 51
| 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 && hexo douban && gulp 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 git push --force --quiet "https://${{secrets.CD_TOKEN}}@${{secrets.CD_REF}}" master:master
|
点击Start commit
设置Secrets
为了保护重要的资料,需要把这些资料设置到Secrets里,然后通过$引用。
在Settings --> Secrets
这里需要设置6个Secrets
名称 | 内容 |
---|
CD_REF | 要提交到的Coding仓库地址 |
CD_TOKEN | Coding Token 格式为 用户名:密匙 |
GH_REF | 要提交到的 Github 仓库地址 |
GH_TOKEN | Github Token |
GIT_EMAIL | Git用户邮箱 |
GIT_NAME | Git用户名 |
运行
随便修改一个东西,比如提交一篇文章,就可以看到变化了
鸣谢
1.通过travis-ci或者GitHub Actions自动化部署GitHub Pages和Coding Pages
2.Github Actions 自动部署 Hexo 脚本