Я бы просто поместил скрипт в текстовый файл, добавил его к git и просто вызвал его с .gitlab-ci.yml
. Примерно так:
//run_mypy.sh
for config_path in $(find * -regex '.*__init__.py' -mindepth 2); do mypy $config_path; exit_code=$?; done
//.gitlab-ci.yml
mypy:
only:
- master
script:
- run_mypy.sh
allow_failure: true
Я слишком много раз пытался и изо всех сил пытался заставить сложные скрипты запускаться прямо из файла .gitlab-ci.yml
. В моем случае это были windows командные файлы и сценарии powershell, но все они страдают от одной и той же проблемы: у вас есть файл yaml, который поддерживает определенный формат и использует определенные специальные символы, и внутри этого вы пытаетесь express совершенно другой формат.
Также гораздо проще управлять кодом выхода из отдельного скрипта, чем пытаться выяснить, как именно GitLab обрабатывает коды выхода. Опять же, это в основном может быть проблемой для сценариев PowerShell, но я все же рекомендую всем хранить ваши сложные сценарии вне .gitlab-ci.yml
.