# 用本地的 hexo-action 目录替换远程

要不然每次在本地添加一些排查语句,都得上传到 GitHub 上去排查调试,太麻烦了

所以第一步一定要用本地的去调试

请按照以下步骤操作:

在博客项目内创建本地 Action 目录
标准的做法是在你的博客项目内创建一个 .github/actions 目录,用于存放本地 Action。

mkdir -p /Users/yuwang/Code/blog/.github/actions

将你的 hexo-action 复制或 clone 到该目录

cp -r /Users/yuwang/Code/hexo-action /Users/yuwang/Code/blog/.github/actions/

现在,你本地的 Action 路径应该是:/Users/yuwang/Code/blog/.github/actions/hexo-action

修改工作流文件以使用相对路径

将 deployment.yml 中的 uses 修改为指向项目内的这个相对路径。这是 GitHub Actions 支持引用本地 Action 的标准语法。

- name: Deploy
  id: deploy
  # 使用项目内的相对路径引用本地 Action
  uses: ./.github/actions/hexo-action

清理缓存并重新运行

# 清理旧的缓存
rm -rf /Users/yuwang/.cache/act/ylsislove-hexo-action@v1.0.5
# 运行测试
act -j hexo-deployment --container-architecture linux/amd64 -s DEPLOY_KEY="YOUR_PRIVATE_KEY_HERE"

这样就可以尝试在本地修改 hexo-action 并快速验证了

# 直接构建本地 Docker 容器验证

为了快速定位问题,我们直接使用你本地的 Dockerfile 和上下文进行独立构建和测试,这样可以得到更清晰的错误输出。

在你的博客项目目录下,执行以下命令:

# 切换到你的本地 Action 目录
cd /Users/yuwang/Code/blog/.github/actions/hexo-action
# 使用 Docker 直接构建镜像,不使用 act,这会输出详细的构建过程
docker build --platform linux/amd64 -t test-hexo-action .

通过 docker build 命令可以直接看到问题是哪里报错了

# 修复

问题根源明确了:你使用的 node:18-buster-slim 镜像已经过时,其对应的 Debian “buster” 版本官方软件源已停止维护,导致 apt-get update 失败。

打开 /Users/yuwang/Code/blog/.github/actions/hexo-action/Dockerfile,将第一行替换为:

FROM node:18-bullseye-slim

或者,如果你想使用一个更新的版本:

FROM node:18-bookworm-slim

bullseye 是当前较稳定且受长期支持的版本。

问题终于修复,博客可以继续更新了,冲~

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

宇凌喵 微信支付

微信支付

宇凌喵 支付宝

支付宝