惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

栖童の小站

中兴微ZX296716机顶盒TTL救砖全攻略 | 栖童の小站 闲鱼副业之行:在机顶盒救砖中,窥见人性的温差 | 栖童の小站 CMCC RAX3000QY路由器TTL刷机与OpenWrt解锁全记录 | 栖童の小站 晨星9385芯片设备免拆包自修改教程 | 栖童の小站 小众云服务商深度测评:小兔互联、初七云、星辰云对比 | 栖童の小站 我的2025:在破除幻象、划定边界与坚守内心的一年 | 栖童の小站 闲鱼求职骗局实录:我是如何识破假冒京东HR | 栖童の小站 “大仙”是如何操控你的:亲历东北出马仙骗局与背后的恐惧营销心理学 | 栖童の小站 一次网站性能翻车实录:滥用SWPP插件导致的用户体验灾难与修复 | 栖童の小站 未成年网络暴力观察:从劝诫到被“人肉”的反思 | 栖童の小站 卸任版主后的身份枷锁:虚拟社交中的友谊与边界 | 栖童の小站 Clarity主题深度定制指南 | 栖童の小站 从Hexo到Nuxt:我的小站重构与品牌升级之路 | 栖童の小站 在爱恨之间:我的人际关系修复与挣扎 | 栖童の小站 信仰的见证:当基督徒的行为违背圣经 | 栖童の小站 版主生涯的回忆:在deepin论坛的日子 | 栖童の小站 从耕种到秋收 | 栖童の小站 当田园牧歌遭遇田埂上的贪婪 | 栖童の小站 芜湖散记:江畔的温柔与遗憾 | 栖童の小站 零成本自建网站统计:在Vercel上部署Umami完全指南 | 栖童の小站 童年的两面:简单的快乐与沉重的烙印 | 栖童の小站 家庭阴影与校园霸凌的自愈 | 栖童の小站 公共澡堂体验:记录一次北方乡下的专业搓澡 | 栖童の小站 如何打造高效的团队 | 栖童の小站 Linux系统Git使用指南:从本地仓库创建到远程仓库推送 | 栖童の小站 Hexo Butterfly主题进阶美化:添加FPS显示、节日弹窗与评论提示 | 栖童の小站 Linux音频修复:解决前置耳机及麦克风插孔无声方案 | 栖童の小站 从零搭建Hexo静态博客:环境配置、主题安装到部署上线完全指南 | 栖童の小站 解决Debian包格式兼容:从zst到xz的手动转换与重打包教程 | 栖童の小站 Debian系统编译Linux内核deb包:从编译到打包安装全流程 | 栖童の小站 老爷机复活指南:Linux Mint Xfce 轻量系统安装与优化全流程 | 栖童の小站
告别手动编译:利用GitHub Actions自动化部署你的Hexo博客 | 栖童の小站
栖童, sweetcandymini@foxmail.com · 2024-01-22 · via 栖童の小站

本文手把手教你配置GitHub Actions,为你的Hexo博客实现自动化部署。从SSH密钥的生成与安全配置,到编写完整的工作流文件,让你只需推送Markdown文章,即可自动完成博客的编译与发布,彻底解放双手。

一、准备

首先电脑部署生成hexo博客,参考:

搭建Hexo博客及安装NPM环境指南

如何在系统上安装NPM(Node Package Manager),并使用Npm安装Hexo博客框架。

二、开始教程

前提

Node.js环境和Git都已安装且Hexo可以正常运行与部署。

注意文章里面的master是仓库分支名,根据自身情况修改main或其他分支名。

改根_config.yml 文件中的deploy为如下内容:

yml
deploy:
  type: git
  repo: git@github.com:用户名/Pages仓库名.git
  branch: master  

生成key,github部署时需要:

bash
ssh-keygen -t rsa -b 4096 -C "Hexo Deploy Key" -f github-deploy-key -N ""

会在当前目录生成:

github-deploy-key私钥

github-deploy-key.pub公钥

新建一个博客仓库存放Hexo源文件,把博客文件放到里面,之后设置博客代码仓库 Settingssecrets and variablesRepository secrets

名字填写:

HEXO_DEPLOY_KEY (大写)

后面Actions会用到不要写错哦!

填入 github-deploy-key(私钥)里面的内容。

公钥放到Pages对应的代码仓库里面。

访问Pages对应的代码仓库 Settings Deploy keysAdd deploy key

名字:HEXO_DEPLOY_PUB (可自定义)

Key 填入 github-deploy-key.pub(公钥)中的内容,别忘了Allow write access 勾上。

在博客代码仓库里点Actions

创建一个新文件:

yml
name: Hexo Deploy

on:

   workflow_dispatch:

    branches:

      - master

jobs:

  build:

    runs-on: ubuntu-latest

    if: github.event.repository.owner.id == github.event.sender.id

    steps:

      - name: Checkout source

        uses: actions/checkout@v4

        with:

          ref: master

      - name: Setup Node.js

        uses: actions/setup-node@v4

        with:

          node-version: '20'

      - name: Setup Hexo

        env:

          ACTION_DEPLOY_KEY: ${{ secrets.HEXO_DEPLOY_KEY }}

        run: |

          sudo timedatectl set-timezone 'Asia/Shanghai'

          mkdir -p ~/.ssh/

          echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa

          chmod 700 ~/.ssh

          chmod 600 ~/.ssh/id_rsa

          ssh-keyscan github.com >> ~/.ssh/known_hosts

          git config --global user.email "改成你的邮箱"

          git config --global user.name "改成你的用户名"

          npm install hexo-cli -g

          npm install

      - name: Deploy

        run: |

          hexo clean

          hexo deploy
         

其中:node-version: '20',指nodejs版本。

master指分支,新建好的仓库改名为main

结尾:别忘了给主题目录里面的.git目录删除,防止Git推送失败。

Git上传博客源码到Github,参考

Linux使用Git命令远程上传

在Linux系统下使用Git进行远程上传的基本步骤和要点。

这么做以后只需要上传.md文件,再手动点击ActionsActions会自动生成public目录,并把里面的全部文件上传到Pages仓库),舒适。