# 获取Token

勾选repoworkflow

# 添加源码仓库的变量

SettingsSecrets and variablesActions
添加变量:

  • GITHUBTOKEN
  • GIT_EMAIL (Git邮箱)

# Actions设置

新建文件:.github/workflows/autodeploy.yml
在里面输入:

# 当有改动推送到master分支时,启动Action
name: 自动部署

on:
  push:
    branches:
      - main

  release:
    types:
      - published

jobs:
  deploy:
    runs-on: ubuntu-latest # 使用最新的 Ubuntu 系统作为编译部署的环境
    steps:
    - name: 检查分支
      uses: actions/checkout@v2
      with:
        ref: main

    - name: 安装 Node
      uses: actions/setup-node@v1
      with:
        node-version: "14.x"
        # node-version: "12.x" #action使用的node版本,建议大版本和本地保持一致。可以在本地用node -v查询版本号。

    - name: 安装 Hexo
      run: |
        export TZ='Asia/Shanghai'
        npm install hexo-cli -g

    - name: 缓存 Hexo
      uses: actions/cache@v1
      id: cache
      with:
        path: node_modules
        key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}

    - name: 安装依赖
      if: steps.cache.outputs.cache-hit != 'true'
      run: |
        npm install --save

    - name: 生成静态文件
      run: |
        hexo clean
        hexo generate
    
    - name: 部署 #此处master:master 指从本地的master分支提交到远程仓库的master分支,若远程仓库没有对应分支则新建一个。如有其他需要,可以根据自己的需求更改。
      env: 
        # Github 仓库
        GITHUBREPO: github.com/Kabuto0229/blog.git
        # git 用户名
        GIT_USER: Kabuto0229
        # git 邮箱
        GIT_EMAIL: ${{ secrets.GIT_EMAIL }}
        GITHUBTOKEN: ${{ secrets.GITHUBTOKEN }}

      run: |
        cd ./public
        git init
        git config --global user.name '$GIT_USER'
        git config --global user.email '$GIT_EMAIL'
        git add .
        git commit -m "${{ github.event.head_commit.message }} $(date +"%Z %Y-%m-%d %A %H:%M:%S") Updated By Github Actions"
        git push --force --quiet "https://$GIT_USER:$GITHUBTOKEN@$GITHUBREPO" master:master

# 提交到Github

  1. 初始化本地仓库
$ git init
$ git remote add origin git@github.com:Kabuto0229/Hexo.git
$ git checkout -b main
  1. 添加屏蔽项
    打开./.gitignore,输入:
_multiconfig.yml
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
scripts/
pnpm-lock.yaml
.deploy*/
.deploy_git*/
.idea
source/_posts/*.js
themes/shoka
themes/butterfly/.git
  1. 提交更改
$ git add .
$ git commit -m "update"
$ git push origin main

# 参考链接