You need to enable JavaScript to run this app. GitHub Actions运行cypress时报EACCES权限错误无法操作.yarn-integrity文件
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions运行cypress时报EACCES权限错误无法操作.yarn-integrity文件

报错原因

该权限错误由不同执行用户的权限不匹配导致:borales/actions-yarn 默认以root用户执行依赖安装,生成的node_modules目录及内部文件(包括.yarn-integrity)归属root所有;而cypress-io/github-action默认以runner普通用户执行操作,没有权限修改root用户创建的文件,因此触发EACCES报错。

可用解决方案
  • 方案一:替换第三方yarn action为原生执行命令
    actions/setup-node已经内置yarn支持,直接用run字段执行yarn命令默认会使用runner用户,生成的文件权限统一,不会出现跨用户访问问题。修改依赖安装步骤如下:
- name: Install dependencies
  run: yarn install --ignore-engines
  • 方案二:关闭cypress action的自动安装逻辑
    指定cypress步骤跳过自动安装依赖,避免触发yarn文件修改操作,修改后的cypress步骤如下:
- name: Run cypress
  uses: cypress-io/github-action@v2
  with:
    build: yarn build
    start: yarn start
    install: false

注意:原配置中混用npm和yarn命令也可能引发缓存冲突,建议统一使用yarn执行脚本

  • 方案三:显式修正node_modules目录权限
    在依赖安装完成后新增一步修改目录归属的操作:
- name: Fix node_modules permissions
  run: sudo chown -R $USER:$USER node_modules
推荐调整后的完整工作流
name: CI/CD

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14]
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Set up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install dependencies
        run: yarn install --ignore-engines

      - name: Run linters
        run: yarn lint:prettier

      - name: Run cypress
        uses: cypress-io/github-action@v2
        with:
          build: yarn build
          start: yarn start
          install: false

      - name: Build
        run: yarn build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 03:06:02