在Gitlab-CI中找不到文件

时间:2018-12-10 18:57:58

标签: continuous-integration gitlab gitlab-ci continuous-deployment continuous-delivery

我已经在这里看到了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 Foundls -la /opt/application/的{​​{1}}错误

这是bash -c "echo \"$APP_VARS\" > ./cfg/env.json"的输出:

ls -la ~/

我的目的是通过CI注入环境变量,以便在测试过程中使用(并希望进行部署,尽管我还没有走到那一步)。

1 个答案:

答案 0 :(得分:0)

解决方案分为两部分:

首先,/builds/**/cfg/目录实际上不存在。要解决此问题,您有两个选择-执行mkdir或在存储库中提交/推送文件。我在.gitignore目录中添加了一个空cfg

然后,产生一个Permission Denied错误。为了解决这个问题,我首先尝试sudo我的命令(使我执行上面提到的mkdir)。如果不起作用,我做了chmod -R 777 /builds/,就解决了我的问题。

展望未来,我计划改用chmod [-R] 644chmod [-R] 755并对我需要通过shell脚本运行的任何文件执行chmod +x

我还将我的环境配置脚本移到了gitlab YAML的before_script:部分,但我认为这不是必需的。

See获取有关chmod的信息。