编写文章后只需提交代码,之后自动构建hexo生成public文件夹,并自动将其发布到你需要的平台,还可以自动生成release用于存档,方便随时回滚到过去任意一版博客。
本文要求已经对Hexo有一点了解,并且知道怎么把hexo源码放到github,如果您刚接触Hexo,可以参考Hexo安装配置并托管至github
如果不想依赖github,可以参考这套自建方案centos下hexo + svn + jenkins实现博客自动部署、svn提交后jenkins自动部署
如果有了就不用新建,这里存放的是hexo源码,可以公开也可以私有,具体方法不赘述。


1 | |

进入仓库-Settings-Secrets-New secret,分别新建三条名为FTP_SERVER、FTP_USERNAME和FTP_PASSWORD,值为FTP地址、FTP账号和FTP密码的secret,如需更多配置例如端口号等可以参考FTP-Deploy-Action。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下后提交,注意缩进,- name要和上边的- name对齐。
1 | |
这个脚本在删除操作会报550错误,项目Issues也提到了这个问题,目前没有解决。可以通过在with里配置dangerous-clean-slate为true绕过这个问题,但是这会删除FTP所有文件后提交,会很慢。提交后就会自动部署,去服务器查看效果吧。
进入仓库-Settings-Secrets-New secret,分别新建三条名为SERVER_SSH_KEY、SERVER_HOST和SERVER_USER,值为SSH私钥、SSH地址和SSH用户名的secret,如需更多配置例如端口号等可以参考ssh-deploy。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下后提交,注意缩进,- name要和上边的- name对齐。
1 | |
这个方式比FTP快非常多,通常数秒即可完成,FTP方式要数分钟。提交后就会自动部署,去服务器查看效果吧。
进入仓库-Settings-Secrets-New secret,分别新建两条名为TCLOUD_API_ID和TCLOUD_API_KEY,值为腾讯云API秘钥SecretId与SecretKey的secret。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下,将其中的blog-1252906577和ap-shanghai改为你自己的存储桶名称和地域,https://dr34m.cn/改为自己的域名后提交,注意缩进,- name要和上边的- name对齐。
1 | |
如果不需要刷新CDN则可以简化如下
1 | |
更详细的教程,包括腾讯云相关配置可以参考通过Github Actions部署静态网站到腾讯云COS,并自动刷新CDN。提交后就会自动部署,去COS查看效果吧。
这一步的前提是你的hexo之前已经托管到github-pages,_config.yml文件中已经有类似下边的代码
1 | |
如果没有,可以参考Hexo安装配置并托管至github
进入仓库-Settings-Secrets-New secret,新建一条名为HEXO_DEPLOY_PRIVATE_KEY,值为Github私钥的secret。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下,将其中的名称和邮箱改为你自己的后提交,注意缩进,- name要和上边的- name对齐。
1 | |
提交后就会自动部署,去github-pages查看效果吧。
将以下文件追加到仓库\.github\workflows\main.yml文件下,然后提交,注意缩进,- name要和上边的- name对齐。
1 | |
完成后可看到存档如下

也可以参考我的项目中的配置,我的项目优先完成腾讯云COS部署,然后是托管到github,发布 Release。
参考文章:利用GitHub+Actions自动部署Hexo博客,GitHub Actions 自动发布Hexo 并通过 FTP上传 到阿里云ECS,githubActions部署文件到服务器
编写文章后只需提交代码,之后自动构建hexo生成public文件夹,并自动将其发布到你需要的平台,还可以自动生成release用于存档,方便随时回滚到过去任意一版博客。
本文要求已经对Hexo有一点了解,并且知道怎么把hexo源码放到github,如果您刚接触Hexo,可以参考Hexo安装配置并托管至github
如果不想依赖github,可以参考这套自建方案centos下hexo + svn + jenkins实现博客自动部署、svn提交后jenkins自动部署
如果有了就不用新建,这里存放的是hexo源码,可以公开也可以私有,具体方法不赘述。


1 | |

进入仓库-Settings-Secrets-New secret,分别新建三条名为FTP_SERVER、FTP_USERNAME和FTP_PASSWORD,值为FTP地址、FTP账号和FTP密码的secret,如需更多配置例如端口号等可以参考FTP-Deploy-Action。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下后提交,注意缩进,- name要和上边的- name对齐。
1 | |
这个脚本在删除操作会报550错误,项目Issues也提到了这个问题,目前没有解决。可以通过在with里配置dangerous-clean-slate为true绕过这个问题,但是这会删除FTP所有文件后提交,会很慢。提交后就会自动部署,去服务器查看效果吧。
进入仓库-Settings-Secrets-New secret,分别新建三条名为SERVER_SSH_KEY、SERVER_HOST和SERVER_USER,值为SSH私钥、SSH地址和SSH用户名的secret,如需更多配置例如端口号等可以参考ssh-deploy。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下后提交,注意缩进,- name要和上边的- name对齐。
1 | |
这个方式比FTP快非常多,通常数秒即可完成,FTP方式要数分钟。提交后就会自动部署,去服务器查看效果吧。
进入仓库-Settings-Secrets-New secret,分别新建两条名为TCLOUD_API_ID和TCLOUD_API_KEY,值为腾讯云API秘钥SecretId与SecretKey的secret。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下,将其中的blog-1252906577和ap-shanghai改为你自己的存储桶名称和地域,https://dr34m.cn/改为自己的域名后提交,注意缩进,- name要和上边的- name对齐。
1 | |
如果不需要刷新CDN则可以简化如下
1 | |
更详细的教程,包括腾讯云相关配置可以参考通过Github Actions部署静态网站到腾讯云COS,并自动刷新CDN。提交后就会自动部署,去COS查看效果吧。
这一步的前提是你的hexo之前已经托管到github-pages,_config.yml文件中已经有类似下边的代码
1 | |
如果没有,可以参考Hexo安装配置并托管至github
进入仓库-Settings-Secrets-New secret,新建一条名为HEXO_DEPLOY_PRIVATE_KEY,值为Github私钥的secret。
存储在Secrets里的内容是很安全的,只有仓库所有者和协作者有权使用,但也仅限于使用,没有人可以查看其内容。

将以下文件追加到仓库\.github\workflows\main.yml文件下,将其中的名称和邮箱改为你自己的后提交,注意缩进,- name要和上边的- name对齐。
1 | |
提交后就会自动部署,去github-pages查看效果吧。
将以下文件追加到仓库\.github\workflows\main.yml文件下,然后提交,注意缩进,- name要和上边的- name对齐。
1 | |
完成后可看到存档如下

也可以参考我的项目中的配置,我的项目优先完成腾讯云COS部署,然后是托管到github,发布 Release。
参考文章:利用GitHub+Actions自动部署Hexo博客,GitHub Actions 自动发布Hexo 并通过 FTP上传 到阿里云ECS,githubActions部署文件到服务器