#github #gitlab #gitlab-pipelines
# #github #gitlab #gitlab-конвейеры
Вопрос:
Я пытаюсь использовать GitHub для запуска при PR конвейера GitLab. Практически, когда разработчик создает PR в GitHub, его / ее код тестируется на конвейере GitLab.
Я пытаюсь следовать этому руководству пользователя: https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html
и у нас есть учетная запись silver, но она не будет работать. При создании PR конвейер GitLab не запускается.
Кто-нибудь с таким опытом, кто может помочь? Спасибо, Джо
Комментарии:
1. Можете ли вы поделиться своим
.gitlab-ci.yml
вопросом, чтобы проверить??? Я подозреваю, что что-то не так в.gitlab-ci.yml
Ответ №1:
Я нашел причину проблемы. Для того, чтобы GitHub запускал GitLab как CD / CI в основном в запросе PR, у вас должна быть учетная запись Silver / Premium И, что очень важно, быть владельцем root.
В любом другом случае вы не сможете увидеть github в списке интеграции в GitLab. У людей из gitlab была блестящая идея скрыть его вместо того, чтобы показывать его отключенным (что было бы подсказкой, чтобы понять, что вам нужна обновленная лицензия)
В приведенном выше видео это не объясняется.
Ответ №2:
Во-первых, вам нужно предоставить нам содержимое вашего .gitlab-ci.yaml
файла. В вашем вопросе вы спросили о GitHub, но вы следуете документации Gitlab, которая совершенно другая. Оба используют git
команды для фиксации и отправки репозиториев, но Github
amp; Gitlab
отличаются.
- Для конвейеров Github вам необходимо создать репозиторий, затем вы переходите к действиям. Github предложит вам настроить
.github/workflows
каталог, содержащийfile.yaml
. В этом.yaml
файле вы можете кодировать свои конвейеры. В соответствии с вашим проектом, Github предложит вам несколько Linux-машин с соответствующей конфигурацией для запуска ваших файлов (если это Java-проект -> вам будут предложены машины maven, Python -> Python-машины, React / Angular -> машины сnpm
установленными, Docker, Kubernetes для развертывания …), И вынасколько я знаю, он ограничен 4 частными проектами (проверьте эту последнюю информацию).
- Для Gitlab у вас есть два варианта: вы можете использовать предварительно настроенные машины, такие как github, и вызывать их, добавляя, например, a
tag: npm
в свой.gitlab-ci.yaml
файл, для вызова машины с установленным npm, но вам нужно заплатить определенную сумму денег. Или вы можете настроить свои собственные бегуны, следуяGitlab
документации сgitlab
командами (что является лучшим вариантом), но вам понадобятся хорошие машины и серверы для запускаnpm - mvn - python3 - ... commands
, конечно, в вашем репозитории Gitlab, и, наконец, чтобы ответить на ваш вопрос, это пример.gitlab-ci.yaml
файла с двумя простыми этапами: сборка и тестирование,вonly
инструкции указано, что эти конвейеры будут выполняться при наличии запроса на слияние (я использую предварительно настроенные машины Gitlab в качестве примера здесь) Подробнее о моем проекте python github https://github.com/mehdimaaref7/Scrapping-Sentiment-Analysis и для gitlab https://docs.gitlab.com/runner /
stages:
- build
- test
build:
tags:
- shell
- linux
stage: build
script:
- echo "Building"
- mkdir build
- touch build/info.txt
artifacts:
paths:
- build/
only:
- merge_requests
test:
tags:
- shell
- linux
stage: test
script:
- echo "Testing"
- test -f "build/info.txt"
only:
- merge_requests