У нас есть конвейер GitLab, который запускается из другого конвейера. Этот конвейер состоит из двух этапов, каждая из которых работает в отдельном экземпляре конвейера. Оба эти этапа работают правильно.
Первая ступень реагирует на триггер. Он находит тег версии в репо, увеличивает его на единицу и применяет этот тег обратно к текущему проекту.
Второй этап запускается в ответ на новый тег в новом экземпляре конвейера. Этот этап также отлично работает при запуске.
Проблема в том, что второй этап больше не запускается после успешного выполнения первого. Еще две недели назад он работал нормально. Ключевые части трубопровода воспроизводятся ниже.
РЕЗЮМЕ ПРОБЛЕМЫ
- Если вы используете триггер, который запускает этап createtag, запускается этап createtag, создается тег, отправляется его в репозиторий, а затем этап развертывания только с: tags НЕ ЗАПУСКАЕТСЯ. Но так было еще две недели назад.
ТРУБОПРОВОД ЕЩЕ ОТВЕТИТ НА ДРУГИЕ СПОСОБЫ УСТАНОВКИ ТЭГОВ
- Если вы создаете тег из командной строки GIT и отправляете его в репозиторий, будет работать этап «развертывание» только с тегами:.
- Если вы создаете тег на главной странице проекта GitLab через Create New | Новая опция раскрывающегося списка тегов, этап «развертывание» только с тегами: работает.
ОДНА ДРУГАЯ КЛЮЧЕВАЯ ИНФОРМАЦИЯ
Этап createtag также перестал работать две недели назад. Оказалось, что токен, привязанный к триггеру, недействителен, а владелец токена больше не работает в компании, и GitLab показывает «Заблокировано» рядом с пользователем на вкладке «Участники».
Принятие права собственности на триггер / токен с текущим пользователем повторно включил токен. После этого снова запустился этап createtag. Проблема в том, что этап «развертывание» по-прежнему не запускается, когда этап «createtag» помещает новый тег в репо.
Есть идеи о том, что произошло и как заставить стадию «развертывания» снова начать реагировать на действия стадии «createtag»? Я почти уверен, что это связано с разрешениями для ушедшего пользователя.
variables:
CI_DEBUG_TRACE: "true"
stages:
- createtag
- deploy
# When receiving a trigger to build, tag the repository with the next numeric
# build version. This should kick off the next build pipeline for deployment.
increment_version:
stage: createtag
script:
# For brevity, logic to connect to repo, get tags, set $NEW_TAG are omitted. They work just fine
# Create new tag and push to repo
- git tag $NEW_TAG master
- git push --tags
only:
- triggers
# When a tagged build is received, execute script
deploy_to_somewhere:
stage: deploy
script:
- [Do Something Here]
only:
- tags