You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions上传allure-raw制品失败求助(Windows自托管Runner)

GitHub Actions Windows自托管Runner上传制品失败排查

问题背景

使用Windows自托管Runner(PowerShell环境)配置的GitHub Actions工作流上传制品时失败,相关配置、报错及文件列表如下:

工作流配置

- name: List files
  working-directory: allure-raw
  run: |
    ls
- name: Upload artifact
  if: always()
  uses: actions/upload-artifact@v4.3.0
  with:
    name: allure-raw
    path: ${{ github.workspace }}/allure-raw/
    retention-days: 10

报错信息

ENOENT: no such file or directory, realpath 'C:\actions-runner\_work\abc\repo\allure-raw\videos\rawSeleniumVideoGrabs\Validate-base-forecast-review-workflow-1--Edit-IBP-MAAS-Existing-DashBoard-and-Pivotcard-and-Load-with-new-dimension-Hiearachies-measures-and-apply-vertical-filter-BFR_TC1--CHROME--02-01-2024--07-20-08-794'

文件列表输出

Directory: C:\actions-runner\_work\abc\repo\allure-raw


Mode                LastWriteTime         Length Name                                                                  
----                -------------         ------ ----                                                                  
d-----        1/31/2024   8:47 PM                videos                                                                 
-a----        1/31/2024   9:00 PM          18255 8a66b2d9-79dd-4887-b5a9-9cb6c6843e68-testsuite.xml  

排查方向及解决方案

1. 解决Windows长路径限制问题

报错中的文件路径长度远超Windows默认260字符的限制,这是最可能的触发原因:

  • 启用长路径支持:
    在自托管Runner机器上执行以下PowerShell命令(需管理员权限),完成后重启GitHub Runner服务:
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
    
  • 缩短文件名/路径:
    修改测试生成的视频文件名,用短标识符(如测试用例ID)替代冗长的测试名称,直接减少路径总长度。

2. 确认文件未被进程占用

测试生成的视频文件可能仍被测试工具(如Selenium)占用,导致上传时无法读取:

  • 在上传步骤前添加延迟,确保文件完全写入磁盘:
    - name: Wait for file release
      run: Start-Sleep -Seconds 10
    
  • 检查测试脚本是否正确关闭视频录制进程,确保文件资源被完全释放。

3. 调整路径写法适配Windows环境

尝试使用Windows原生路径分隔符或相对路径,避免跨平台路径解析问题:

  • 替换路径为Windows格式:
    path: ${{ github.workspace }}\allure-raw\
    
  • 使用相对路径(基于工作目录):
    path: allure-raw/
    

4. 检查Runner账户权限

确保GitHub Runner服务运行的账户对allure-raw/videos/rawSeleniumVideoGrabs目录及其中文件有读取权限:

  • 查看Runner服务的运行账户(默认是NT SERVICE\actions.runner),在文件资源管理器中给该账户添加对应目录的读取权限。

内容的提问来源于stack exchange,提问作者Maxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:16:22