Интересно, почему так много проектов имеют тесты селена в разных репозиториях. Я категорически против такого разделения проектов, так как разработчики, как правило, забывают о тестах пользовательского интерфейса, и они бесполезны, когда не обновляются.
Тесты Selenium не занимают много места, поскольку в большинстве случаев это только исходный код для тестируйте классы, поэтому было бы разумно хранить их вместе с основным кодом проекта. Другое дело, что вам не нужно беспокоиться о прохождении артефактов и тестов вариантов в соответствии с основным продуктом.
Поэтому я бы посоветовал избавиться от избыточного проекта и сохранить тесты пользовательского интерфейса вместе с основным проектом, если у вас нет хороших результатов. причина держать их в стороне.
Как вы указали, в настоящее время нет возможности передавать переменную между стадиями конвейера. К счастью, многие пользователи нашли обходной путь в передаче текстового файла с переменными в качестве артефакта задания .
Так что, если вы хотите запустить тесты пользовательского интерфейса, я бы go предложил решение, которое вы предложили иметь еще одну работу, которая запускает внешнюю работу после этапа сборки. Ваш yaml будет выглядеть так:
stages:
- test
- build
- deploy
...
# This jobs creates the exe file
build:
stage: build
tags:
- docker
script:
- some build commands
- echo "export JOB_ID=$CI_JOB_ID;" >> variables
artifacts:
paths:
- /build/demo/test.exe
- variables
trigger_ui_test:
stage: deploy
script:
- source variables
- curl <your curl command with -F variables[JOB_ID]=${JOB_ID} >