Я пытаюсь настроить конвейер с помощью GitLab CI, но у меня возникли некоторые проблемы с моим Runner, который является бегуном-исполнителем оболочки.
В основном тесты генерируют много файлов. Чтобы сохранить чистую файловую систему, в начале каждого конвейера я запускаю это задание, которое просто стирает весь каталог сборки проекта любых файлов, оставшихся от последнего конвейера:
cleanup_job:
stage: cleanup_phase
variables:
GIT_STRATEGY: none
script:
- sudo rm -rf *
- sudo rm -rf .git
- cd ~
- sudo chown -R gitlab-runner builds/
Тогда второе задание предназначен для импорта проекта с GIT STRATEGY: fetch
и установки с Composer:
install_framework:
stage: setup
variables:
GIT_STRATEGY: fetch
script:
- ls -la
- eval $(ssh-agent)
- ssh-add
- composer install
- cd ~
- sudo chown -R gitlab-runner builds/
Моя проблема в том, что если я не удалю папку / home / gitlab-runner / builds перед запуском моего конвейера задание install_framework
завершается с ошибкой во время начальной выборки:
Running with gitlab-runner 12.7.1 (003fe500)
on Local Runner vYk7fjSG
Using Shell executor...
Running on localhost.localdomain...
Fetching changes...
/home/gitlab-runner/builds/vYk7fjSG/0/ent/qa/test_project/.git: Permission denied
ERROR: Job failed: exit status 1
Это крайне неприятно, и я не понимаю, почему это происходит. .git
даже не существует в тот момент, когда производится выборка, поскольку я удалил его незадолго до этого.