Как я могу локально протестировать скрипт бегуна gitlab, когда репозиторий использует LFS - PullRequest
0 голосов
/ 06 октября 2018

Я работаю с бегунами GitLab и должен проверить их локально перед нажатием.

Это можно сделать с помощью

gitlab-runner exec docker testing 

И хорошо работает.

Теперь,если в хранилище используется LFS, это больше не работает, и я получаю сообщения об ошибках типа

batch request: missing protocol: "/home/self/workspace/project.git/info/lfs"

Это происходит потому, что вы не можете просто клонировать локальную папку в другую, если используется LFS.

Существует обходной путь использования git clone --reference , предложенный

Но как это можно применить к gitlab runner?

1 Ответ

0 голосов
/ 06 октября 2018

Этот сумасшедший хак работает:

gitlab-runner exec docker testing --pre-clone-script 'set -x; function git {
  if [[ "$1" == "clone" && "$@" != *"--help"* ]]; then
    command git clone "$2" --reference $3 https://user:password@git.example.com.de/path/to/repo.git "$4" "$5" "$6"   
  else
    command git "$@"
  fi
}'

, где вы должны заменить

https://user:password@git.example.com.de/path/to/repo.git

на исходный URL-адрес HTTP вашего локального репозитория, включая имя пользователя и пароль.

Что здесь происходит?

мы переопределяем команду git clone, которая затем выполняется исполнителем GitLab, и добавляем опорную ссылку.После успешного клонирования все остальное работает как обычно.

...