Github Actions自动发布失败:无法找到指定工件文件
错误原因分析及解决办法
错误核心原因
你遇到的/home/runner/work/pcsx2/pcsx2/ci-artifacts/* doesn't match any files错误,主要来自两个场景:
1. Artifact下载后的目录结构不符合预期
actions/download-artifact@v3下载多个artifact时,会在指定的path下为每个artifact创建独立子文件夹。比如你上传的artifact叫windows-build,文件会存放在ci-artifacts/windows-build/下,而非ci-artifacts/根目录。此时ci-artifacts/*只会匹配这些子文件夹,无法匹配文件夹内的实际文件,导致发布工具找不到可上传内容。
2. 前置upload_artifacts Job未成功上传文件
如果上游的upload_artifacts Job没有生成或上传任何artifact,ci-artifacts目录会是空的,自然找不到匹配文件。
解决步骤
步骤1:验证Artifact的存在与结构
在Download all Artifacts步骤后添加调试命令,查看实际下载的文件结构:
- name: Debug - Check Artifact Structure run: ls -R ${{ github.WORKSPACE }}/ci-artifacts
运行Workflow后查看该步骤输出,确认文件是否存在及具体存放路径。
步骤2:调整发布的文件匹配路径
根据调试结果,修改marvinpinto/action-automatic-releases的files参数:
- 匹配所有子文件夹下的所有文件(递归匹配):
files: | ${{ github.WORKSPACE }}/ci-artifacts/**/* - 精准匹配指定artifact下的文件(比如artifact叫
linux-build):files: | ${{ github.WORKSPACE }}/ci-artifacts/linux-build/*
步骤3:检查上游upload_artifacts Job配置
确认upload_artifacts Job中actions/upload-artifact@v3的path参数是否正确指向生成的文件,且文件确实存在。示例正确配置:
- uses: actions/upload-artifact@v3 with: name: linux-build path: ./build/linux/**/* # 确保该路径下有实际生成的文件
内容的提问来源于stack exchange,提问作者Ahmed Moselhi
相关产品推荐
相关产品推荐

