自建Forgejo实例使用actions/checkout@v4时出现目录错误求助
解决自建Forgejo Actions中checkout步骤的"not a directory"错误
问题根源
该错误源于Forgejo Actions缓存目录权限异常,或是底层运行工具act拉取actions-checkout@v4时未正确创建目录,导致缓存路径无法识别为目录。
修复步骤
1. 修复缓存目录权限
登录Forgejo服务器,定位缓存目录/data/.cache/act/,确保运行Forgejo的用户(通常为forgejo或git)拥有读写权限:
sudo chown -R forgejo:forgejo /data/.cache/act/ sudo chmod -R 755 /data/.cache/act/
2. 重建缓存目录
若权限无问题,大概率是缓存损坏,直接删除原有缓存目录后重建:
sudo rm -rf /data/.cache/act/ sudo mkdir -p /data/.cache/act/ sudo chown -R forgejo:forgejo /data/.cache/act/
3. 校验Forgejo Actions配置
打开app.ini配置文件,确认Actions缓存相关配置指向有效且可写的目录:
[actions] ENABLED = true RUNNER_CACHE_DIR = /data/.cache/act/
修改完成后重启Forgejo服务:
sudo systemctl restart forgejo
4. 修正workflow的checkout配置
确保你的action.yml中checkout步骤使用标准语法,避免自定义路径或错误缓存配置:
steps: - name: Checkout code uses: actions/checkout@v4
也可替换为Forgejo官方托管的checkout动作:
steps: - name: Checkout code uses: https://code.forgejo.org/actions/checkout@v4
5. 重启自托管运行器
若使用自托管运行器,确认运行器已正确注册,同时重启运行器服务:
sudo systemctl restart forgejo-runner
内容的提问来源于stack exchange,提问作者Neel Mani Upadhyay
相关产品推荐
相关产品推荐

