已经使用HEXO正常构建GitHub页面

根据github action 给hexo配置自动部署github page

前往墨抒颖的个人网站查看纯净版

1. 为仓库设置访问密钥

第一步先生成密钥,打开命令行并生成一组密钥

ssh-keygen -f github-deploy-key -C "HEXO CD"

记得跳过密码啥的,这里连按三次回车就好

随后我们会获得两个密钥文件,这两个等下会用到

2. 上传私钥

github仓库地址 → Settings → Secrets → New secret

点击new repository secret新建仓库密钥

名字 HEXO_DEPLOY_PRI

内容 github-deploy-key文件内的所有内容

不要轻易透露你的私钥

3. 上传公钥

这里要分清你的仓库->page的形式,公钥被上传的仓库代表着要被部署的仓库,github不支持同一个(部署)公钥上传至多个仓库

不同仓库

如果你的hexo代码和要部署的页面不在同一个仓库

比如你有一些暂时不方便公开的内容,或者你是不想公开你的Hexo代码,只想将静态页面(文字,图片,网站主题所用的各个样式和脚本)部署到github page上其他的内容一律不包含

此时你需要将公钥上传到你要部署的仓库中去

名字 HEXO_DEPLOY_PUB 内容 github-deploy-key.pub`文件内的所有内容

记得勾选允许写入权限

相同仓库

与上一步类似,只是上传到的仓库地址和你的代码仓库地址一样,不过你一定要确定你有在配置中设置号正确的的分支

配置github action

这里可以在github上点击 Action -> new workflow -> set up a workflow yourself随便挑个模板将内容放进去,也可以在代码仓库中的.github/workflow添加一个hexo-ci.yml然后将以下内容放进该文件中。

记得把 blog_source_branch, username, username@email.address替换成你自己的

name: HEXO CI

on:
push:
branches:
- <blog_source_branch> jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x] steps:
- uses: actions/checkout@v1 - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }} - name: Configuration environment
env:
HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "<username>"
git config --global user.email "<username@email.address>"
- name: Install dependencies
run: |
npm i -g hexo-cli
npm i
- name: Deploy hexo
run: |
hexo clean && hexo generate && hexo deploy

然后提交本次更改即可

配置Hexo deploy

打开代码仓库中的_config.yml

将 git 存储库从 http 形式更改为 ssh 形式。

发布部署文件的的分支应该仓库配置的分支一样

deploy:
type: git
repo: git@github.com:moshuying/moshuying.github.io.git
# example, https://github.com/hexojs/hexojs.github.io
branch: master

你已经完成了所有操作!推送一次看看效果吧。

参考和推荐

hexo中运行shader和threejs

hexo配合github action 自动构建(多种形式)

hexo配合github action 自动构建(多种形式)的更多相关文章

  1. GitHub + circleCI 自动构建/自动部署 应用

    GitHub + circleCI 自动构建/自动部署, 这里略过了单元测试,以部署 laravel 应用为例子 比起 gitlab + ansible + genkins 操作起来节省了很多硬件资源 ...

  2. 使用Github Action自动填写疫情通

    使用Github Action自动填写疫情通 西电晨午晚检一天三次,通过企业号功能进行填写.实际上,西电企业号大部分功能是以网页模式工作的,通过构造connection发送合适的request,设置计 ...

  3. 利用.NET 5和Github Action 自动执行米游社原神每日签到福利

    背景 众所周知,原神的签到福利是需要下载app才可以领取的.但像我这种一般不怎么刷论坛的人,每天点开app签到很麻烦. 很多大佬利用Github的Action自动执行的模式,实现了很多好东西.加上.n ...

  4. GitHub Action一键部署配置,值得拥有

    最近由于自己的个人应用增加,每次都需要在服务器手动发布,觉得特别麻烦,所以想通过代码控制自动发布,直接选择了GitHub Action. GitHub Action持续集成服务,目前已经免费开放使用, ...

  5. 5 分钟教你快速掌握 GitHub Actions 自动部署博客

    自从 GitHub 宣布 GitHub Actions 在平台上对所有开发人员和存储库可用以来,GitHub Actions 越来越受欢迎.很多第三方平台在生态系统中有速度等限制,将进一步推动开发人员 ...

  6. github action 实现CI/CD

    两种github action 打包.Net Core 项目docker镜像推送到阿里云镜像仓库 1.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试. ...

  7. Github配合Jenkins,实现vue等前端项目的自动构建与发布

    本篇文章前端项目以vue为例(其实前端工程化项目的操作方法都相同),部署在Linux系统上(centos). 之前做前端项目的部署,一直都是手动运行打包命令,打包完.再使用FTP.Xshell等这类的 ...

  8. 再探CI,Github调戏Action手记——自动构建并发布到另一仓库

    前言 接上文初探CI,Github调戏Action手记--自动构建并发布 在学习了Action的基本操作之后 接着我们来探索Action其他可能的功能 众所周知 只有用得到的技术学习的才会最快 我也是 ...

  9. 初探CI,Github调戏Action手记——自动构建并发布

    前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...

随机推荐

  1. redis知识点及常见面试题

    redis知识点及常见面试题 参考: https://zm8.sm-tc.cn/?src=l4uLj4zF0NCIiIjRnJGdk5CYjNGckJLQrIqNiZaJnpOWjIvQno2Llpy ...

  2. Spring详解(十)加载配置文件

    在项目中有些参数经常需要修改,或者后期可能会有改动时,那我们最好把这些参数放到properties文件中,在源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...

  3. C# 使用正则表达式替换PPT中的文本(附vb.net代码)

    文本介绍如何在C#程序中使用正则表达式替换PPT幻灯片中的指定文本内容.具体操作步骤如下: 1. 在程序中引用Spire.Presentation.dll.两种方法可参考如下: (1)直接在程序中通过 ...

  4. spring boot应用常用配置

    pom.xml <!--自动打包--> <plugin> <groupId>org.springframework.boot</groupId> < ...

  5. 24点游戏(24 game)的C++编程求解实现

    什么是24点游戏 24点游戏,英文叫做24 game,是对给定的4个非负整数进行加减乘除运算,要求每个数都要被用到且仅用到一次,并得到最终的运算结果为24.比如3.8.3.8这四个数,可以找出唯一的一 ...

  6. JavaScript高级程序设计读书笔记之JSON

    JSON(JavaScript Object Notation)JavaScript对象表示法.JSON是JavaScript的一个严格的子集,利用了JavaScript中的一些模式来表示结构化数据. ...

  7. https(ssl) 免费证书

    https://letsencrypt.org/getting-started/ https://certbot.eff.org/lets-encrypt/centosrhel7-nginx http ...

  8. EFCore 开始

    1. 数据准备 新建类库项目--实体 NuGet安装: Microsoft.EntityFrameworkCore 新建类库项目--DbContext NuGet安装: Microsoft.Entit ...

  9. [源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型

    [源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型 目录 [源码解析] 深度学习流水线并行 PipeDream(3)--- 转换模型 0x00 摘要 0x01 前言 1.1 改 ...

  10. Python - 面向对象编程 - 实战(4)

    需求:士兵突进 士兵许三多有一把 AK47 士兵可以开火 枪能够发射子弹 枪装填子弹,可以增加子弹数量 需求分析 很明显有两个类:士兵类,枪类 AK47 是枪名,是枪类的属性,每把枪都有子弹数,所以子 ...