我正在运行 GitHub 操作工作流,它失败并出现以下错误。
Unhandled exception:
FileSystemException: Cannot create file, path = '/github/home/.flutter' (OS Error: Permission denied, errno = 13)
我在 GitHub 操作的工作流语法中查找,但找不到解决此问题的任何说明。
我的构建文件如下所示:
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
终于有时间看了看,添加sudo
解决了它。
映像使用用户cirrus
运行。还需要提供完整路径:
sudo /home/cirrus/sdks/flutter/bin/flutter pub get
来自 GitHub 文档:
Linux 和 macOS 虚拟机都使用无密码 sudo 运行。 当您需要执行命令或安装需要更多工具时 权限比当前用户,无需使用sudo 提供密码。
除了将所有失败的步骤添加 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。