用 GitHub Actions 自動化發佈Hexo網站到 GitHub Pages

本文首發於個人博客 用 GitHub Actions 自動化發佈Hexo網站到 GitHub Pages 歡迎來個人小站支持一下html

說實話不用每次都執行一大長串部署指令真的香啊!node

準備Hexo網站

  1. 在本地創建一個Hexo站點,能夠參考官方快速開始文檔
  2. 創建兩個GitHub倉庫,分別叫blog(私有的)和你的GitHub用戶名.github.io(共有的)。前者用來存儲博客源文件,後者用於掛載GitHub Pages。
  3. 將本地的博客源文件推送到blog倉庫。

準備祕鑰

爲了方便運行GitHub Actions時登陸GitHub帳號,咱們使用SSH方式登陸。git

使用ssh-keygen生成一組公私祕鑰對github

ssh-keygen -t rsa -b 4096 -f ~/.ssh/github-actions-deploy
複製代碼

Settings->SSH and GPG keys添加剛剛生成的公鑰,名稱隨意。 在blog倉庫的Settings->Secrets裏添加剛剛生成的私鑰,名稱爲 ACTION_DEPLOY_KEYshell

配置Hexo的_config.yml

添加部署配置。npm

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
 repo: git@github.com:bulabula.git # 使用倉庫的ssh地址
 branch: master
複製代碼

配置 GitHub Actions

blog倉庫的Actions選項卡下點擊新建workflow,編寫以下配置。ubuntu

name: Deploy Blog

on: [push] # 當有新push時運行

jobs:
 build: # 一項叫作build的任務

 runs-on: ubuntu-latest # 在最新版的Ubuntu系統下運行
    
 steps:
 - name: Checkout # 將倉庫內master分支的內容下載到工做目錄
 uses: actions/checkout@v1 # 腳原本自 https://github.com/actions/checkout
      
 - name: Use Node.js 10.x # 配置Node環境
 uses: actions/setup-node@v1 # 配置腳原本自 https://github.com/actions/setup-node
 with:
 node-version: "10.x"
    
 - name: Setup Hexo env
 env:
 ACTION_DEPLOY_KEY: ${{ secrets.ACTION_DEPLOY_KEY }}
 run: | # set up private key for deploy mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa # 配置祕鑰 chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts # set git infomation git config --global user.name 'bulabula' # 換成你本身的郵箱和名字 git config --global user.email 'bulabula@athorx.com' # install dependencies npm i -g hexo-cli # 安裝hexo npm i  - name: Deploy
 run: | # publish hexo generate && hexo deploy # 執行部署程序 複製代碼

本文首發於個人博客 用 GitHub Actions 自動化發佈Hexo網站到 GitHub Pages 歡迎來個人小站支持一下hexo

相關文章
相關標籤/搜索