Итак, предположим, что у вас есть несколько проектов с одним и тем же сценарием зависимости, но в настоящее время у вас есть один и тот же сценарий в разных проектах с небольшими изменениями. Например, предположим, что у вас есть следующее:
projectA / alpha. sh
echo "The first letter of alphabet is A"
projectB / alpha. sh
echo "The second letter of alphabet is B"
Очевидно, это много повторяющегося кода, и должен быть способ создать один скрипт, из которого может извлекать каждый проект, например:
projectUtility / alpha. sh
echo "The {order} letter of alphabet is {givenLetter}"
How В точности ли вы импортировали бы что-то подобное или внутри / вне конвейера Gitlab другого проекта, чтобы вы могли использовать его, не делая его реальной частью этой кодовой базы? Единственный способ, который приходит на ум, - это клонировать проект в базу кода, находясь в конвейере, например:
stages:
- pullScript
pullScript:
stage: pullScript
script:
- git clone git@gitlab.com:projectUtility.git
- cd projectUtility
- bash alpha.sh "first" "B"
- cd ..
- rm -r projectUtility
Однако это не работает. Я получаю следующие ошибки:
$ git clone git@gitlab.com:projectUtility.git
Cloning into 'projectUtility'...
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
ERROR: Job failed: command terminated with exit code 1
ИЛИ
$ git clone https://gitlab.com/projectUtility.git
Cloning into 'projectUtility'...
fatal: could not read Username for 'https://gitlab.com': No such device or address
ERROR: Job failed: command terminated with exit code 1