MENU

通过GitHub Actions 自动部署 Hexo 脚本

February 24, 2021 • Read: 215 • 博客

GitHub Actions

GitHub Actions是GitHub于2019年底推出的自动化流程工具,它的功能很强大。而我们只需要用到它的构建。由于是GitHub自家的工具,我们无需再额外的注册账号,GitHub Actions也集成在了GitHub界面上,我们只需点击Actions进行创建。

创建Actions

在Hexo目录的仓库,点击Actions Tab,然后点击Set up a workflow yourself
图是盗的@jerryc大佬的
20200120211059.png
20200120211315.png
image-20200120211417492.png

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
  • on是要被监测的branch,等同Travis-cibranches。其它的都跟Travis-ci的配置差不多,这里就不再仔细介绍。

设置隐私资料

  • 为了不让重要的资料暴露在公众,需要把这些资料设置到secrets里,然后通过$引用。在Settings里的Secrets里设置
    image-20200120212134568.png

运行

现在你只要把Hexo的目录推送到GitHub去,GitHub Actions会自动监测到变化,然后进行编译。

Last Modified: July 9, 2021
Archives QR Code Tip
QR Code for this page
Tipping QR Code