Gitlab-runner удаляет файлы на удаленном компьютере, несмотря на .gitignore - PullRequest
0 голосов
/ 15 января 2020

Я пытался найти решение этой проблемы, но не мог найти.

Проблема:

У нас есть файлы изображений в /public/img/InfoNews/example.png, и каждый раз, когда мы пу sh Обновление gitlab-runner удаляет эти файлы на пульте.

В нашем .gitignore есть /public/img/InfoNews, что предотвращает загрузку git локальных файлов, но не приводит к удалению удаленных файлов в этой папке по какой-то причине.

Я пытался добавить этот путь к кешу и артефактам в .gitlab-ci.yml, но безуспешно

Ценится sh в правильном направлении.

Наш .gitlab-ci.yml:

cache:
  paths:
    - vendor/
    - public/img/

deploy:
  stage: deploy
  script:
    - php artisan cache:clear
    - rm -rf vendor/
    - composer install
    - echo "$env" > "$(pwd)/.env"
    - php artisan migrate

  artifacts:
    paths:
      - .env
      - public/img/

РЕДАКТИРОВАТЬ:

Я также пытался

cache:
  untracked: true
  paths:
    - vendor/
    - public/img/

Но он все равно удаляет файлы.

1 Ответ

2 голосов
/ 17 января 2020

Я исправил это сам.

Gitlab-runner запускает git clean после извлечения и игнорирует .gitignore файлов по умолчанию по любой причине.

Чтобы предотвратить удаление файлов, вы должны добавьте это к вашему gitlab-ci.yml`:

variables:
  GIT_CLEAN_FLAGS: -x -f -e public/**

-x игнорирует файлы .gitignore -f принудительно очищает, а -e исключает файлы из чистых, ** означает каждый файл и папку

...