Файл не найден в Gitlab-CI - PullRequest
       32

Файл не найден в Gitlab-CI

0 голосов
/ 10 декабря 2018

Я уже видел этот вопрос / ответ здесь, но решение не работает для проекта 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/ и bash -c "echo \"$APP_VARS\" > ./cfg/env.json"

Это вывод ls -la ~/:

$ ls -la ~/
total 72
drwxr-xr-x. 1 cirrus cirrus 4096 Jul  9 19:16 .
drwxr-xr-x. 1 root   root   4096 Mar  7  2018 ..
drwxr-xr-x. 1 cirrus cirrus 4096 Jul  9 19:17 .android
-rw-r--r--. 1 cirrus cirrus  220 May 15  2017 .bash_logout
-rw-r--r--. 1 cirrus cirrus 3526 May 15  2017 .bashrc
-rw-r--r--. 1 cirrus cirrus   24 Jul  9 19:16 .flutter
-rw-r--r--. 1 cirrus cirrus  675 May 15  2017 .profile
drwxr-xr-x. 1 cirrus cirrus 4096 Jul  9 19:16 .pub-cache
drwxr-xr-x. 1 cirrus cirrus 4096 Jul  9 19:16 sdks

Мое намерение состоит в том, чтобы вводить переменные среды через CI для использования во время тестирования (и, надеюсь, развертывания, хотя я еще не дошел до этого).

1 Ответ

0 голосов
/ 11 декабря 2018

Решение состоит из двух частей:

Во-первых, каталог /builds/**/cfg/ фактически не существует.Чтобы это исправить, у вас есть два варианта: сделать mkdir или зафиксировать / отправить файл в репо.Я добавил пустой .gitignore в свой каталог cfg.

Затем это привело к ошибке Permission Denied.Чтобы решить эту проблему, я сначала попытался sudo мои команды (что позволило мне выполнить mkdir, упомянутый выше).Когда это не сработало, я сделал chmod -R 777 /builds/, и это решило мою проблему.

В дальнейшем я планирую использовать взамен chmod [-R] 644 или chmod [-R] 755 и выполнить chmod +x для любых файлов.Мне нужно запустить через скрипт оболочки.

Я также переместил свой скрипт конфигурации среды в раздел before_script: в gitlab YAML, но я не верю, что это было необходимо.

См. для получения информации оchmod.

...