如何解决 GitHub Actions 自动部署后文章更新时间异常的问题
Keep Team Lv1

当我们使用 GitHub Actions 自动部署 Hexo 博客,在部署成功之后,会发现 Hexo 博客的所有文章的更新时间出现异常,全部变成了此次提交修改的时间,但是有些文章在上一次提交后是没有发生过任何修改的。

出现这种异常现象是因为 Git 在推送更新时,并不会记录文件的创建时间、修改时间等元信息,所以每次使用 Git 克隆项目后,该项目中文件的创建时间都是克隆时的时间。

然而,自动化部署每次都需要先克隆 Hexo 博客项目源码,才能进行后续的构建生成和部署等操作,在 Hexo 博客中,如果没有在文章的 Front-Matter 设置 updated,Hexo 会默认使用文件的最后修改时间作为文章的更新时间,这就是为什么会出现自动部署后文章更新时间都发生变化的真正原因。

庆幸的是,我们可以使用 Keep 主题作者编写的自动部署 Hexo 到 GitHub Pages 的 Action 来规避这种异常现象。

Hexo Deploy GitHub Pages Action 在编译构建前会自动将每篇文章文件的最后修改时间设置为最新一次的 Git 提交时间。

使用方法特别简单,只需按 Hexo Deploy GitHub Pages Action 的示例来配置即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
name: Hexo Deploy GitHub Pages
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Build and Deploy
uses: theme-keep/hexo-deploy-github-pages-action@master
env:
# Your GitHub Token
PERSONAL_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# The repository the action should deploy to
PUBLISH_REPOSITORY: theme-keep/site

注意:Hexo Deploy GitHub Pages Action 解决部署后文章更新时间异常,目前只支持 GitHub Pages,后续扩展到 Vercel、Netlify 等。

 打赏作者
 评论
评论插件加载失败
正在加载评论插件