# #gitlab #gitlab-ci #pipeline #gitlab-ci-runner #gitlab-pipelines
Вопрос:
я пробую конвейер gitlab. теперь я вношу некоторые изменения и код, вставленный в главный конвейер ветвей, показывающий, что он уже обновлен на сегодняшний день, но у меня есть изменения в коде
Я пытаюсь выполнить три этапа, но все равно та же проблема .gitlab-ci.yml
before_script:
- echo "Before script"
building:
stage: build
script:
- git pull origin master
testing:
stage: test
script:
- git pull origin master
deploying:
stage: deploy
script:
- git pull origin master
Ответ №1:
Если рабочий процесс gitlab-ci начинается с клонирования вашего репозитория, никакое удаление git не изменит тот факт, что у вас уже есть полная история, и на момент рабочего процесса это «уже актуально».
Другими словами, в вашем файле не потребуется подтягивание git gitlab-ci.yml
.
Комментарии:
1. Я внес изменения в главную ветвь и развернул вручную . Но трубопровод показывается
already up to date
снова и снова2. @PirtaMatharu Да, потому что он клонирует ваш репозиторий, тем самым получая самую последнюю версию того, что вы только что нажали.
3. Можете ли вы дать мне какие-либо рекомендации для решения этой проблемы?
4. @PirtaMatharu, другими словами, на вашем снимке экрана строка 11 уже выполнила мастер git pull origin. Вам не нужно делать это снова. Подумайте, что при запуске CI вы находитесь в полностью чистом докере, одним из первых шагов, включенных в gitlab-ci, является клонирование репозитория. Большую часть времени вам никогда не нужно выполнять какие-либо команды git в вашем CI. Вы можете сосредоточиться на контроле качества / тестировании / развертывании. Не беспокойтесь об источниках, которые здесь есть. Попробуйте ls -l, чтобы проверить это.
5. @PirtaMatharu Учитывая, что отзыв сразу после клона почти всегда даст вам «Уже в курсе», здесь нет реальной проблемы, которую нужно решить.
Ответ №2:
Если ваш конвейер работает на том же репозитории, который вы изменили, использовать его нет необходимости git pull
. Хотя, если ваш конвейер запускает (в репо A) другой конвейер в другом репозитории (репо B), чтобы получить доступ к файлам в репо A, вам необходимо запустить репо A в конвейере репо B.