20

我正在运行 GitHub Actions 工作流程,但它失败并出现以下错误。

Unhandled exception:
FileSystemException: Cannot create file, path = '/github/home/.flutter' (OS Error: Permission denied, errno = 13)

我查看了 GitHub Actions 的工作流语法,但找不到任何解决此问题的说明。

我的构建文件如下所示:

name: Flutter CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  cirrusci/flutter:v1.7.8-hotfix.4

    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: flutter pub get
      working-directory: my_app
    - name: Run tests
      run: flutter test
4

2 回答 2

25

终于有时间看看它并添加sudo解决了它。

图像与用户一起运行cirrus。还需要提供完整路径:

sudo /home/cirrus/sdks/flutter/bin/flutter pub get

来自 GitHub文档

Linux 和 macOS 虚拟机都使用无密码 sudo 运行。当您需要执行命令或安装需要比当前用户更多权限的工具时,您可以使用 sudo 而无需提供密码。

于 2019-10-20T02:37:44.007 回答
0

除了将 sudo 添加到所有失败的步骤之外,您还可以只修改容器配置:

container:
  image:  cirrusci/flutter:v1.7.8-hotfix.4
  options: --user root

说明:导致问题的原因是 cirrusci/flutter:v1.7.8-hotfix.4 映像上的默认用户无权访问 github 挂载到此 docker 映像中的某些目录。包括/github给您带来麻烦的目录。添加options: --user root到容器配置可确保默认用户成为 root,这样您就不需要在每一步都使用 sudo。

于 2021-12-02T22:24:31.677 回答