Уже обновленный конвейер gitlab stackoverflow

# #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.