我已经在这里看到了question/answer,但是该解决方案不适用于我正在开发的Flutter项目。请不要将其标记为重复。
这是我的Yaml文件:
image: cirrusci/flutter
variables:
before_script:
- flutter channel beta
- flutter upgrade
stages:
# - build
- test
#build:
# stage: build
# script:
# - flutter build apk
unitTests:
stage: test
script:
# - ls -la /opt/application/
# - ls -la ~/
- bash -c "echo \"$APP_VARS\" > ./cfg/env.json"
- flutter test test/widget_test.dart
哪个产生了cannot access <filename/directory>: File or Directory Not Found
和ls -la /opt/application/
的{{1}}错误
这是bash -c "echo \"$APP_VARS\" > ./cfg/env.json"
的输出:
ls -la ~/
我的目的是通过CI注入环境变量,以便在测试过程中使用(并希望进行部署,尽管我还没有走到那一步)。
答案 0 :(得分:0)
解决方案分为两部分:
首先,/builds/**/cfg/
目录实际上不存在。要解决此问题,您有两个选择-执行mkdir
或在存储库中提交/推送文件。我在.gitignore
目录中添加了一个空cfg
。
然后,产生一个Permission Denied
错误。为了解决这个问题,我首先尝试sudo
我的命令(使我执行上面提到的mkdir
)。如果不起作用,我做了chmod -R 777 /builds/
,就解决了我的问题。
展望未来,我计划改用chmod [-R] 644
或chmod [-R] 755
并对我需要通过shell脚本运行的任何文件执行chmod +x
。
我还将我的环境配置脚本移到了gitlab YAML的before_script:
部分,但我认为这不是必需的。
See获取有关chmod
的信息。