Если у вас много очень похожих заданий, которые можно запустить на одном и том же бегуне и / или образе docker, то вы можете использовать ключевое слово параллельный , а затем внешние сценарии для обработки небольших изменений. необходимо для различных заданий.
Затем вы можете использовать переменную CI_NODE_INDEX
в качестве аргумента для вашего сценария тестирования:
.system-tests-non-destructive:
extends: .system-tests-setup
script:
- system_tests/non-destructive-tests.py --ci_node_index $CI_NODE_INDEX
...
test:ubuntu-18.04.03-docker-19.03.5-non-destructive:
extends:
- .system-tests-non-destructive
tags:
- test:ubuntu-18.04.03-docker-19.03.5
parallel: 10
Ваш файл .gitlab-ci.yml
будет затем определять, какую платформу вы будете использовать. запустите ваши тесты, в то время как ваши внешние python сценарии будут содержать всю информацию о том, как выполняются тесты. Это может уменьшить объем кода, который необходимо дублировать, хотя это не идеальное решение.
Другим решением может быть просто создание файла .gitlab-ci.yml
. Тогда будет очень легко добавлять, удалять и изменять его части любым удобным для вас способом.