В настоящее время у меня есть работа в конвейере GitLab, основной целью которой является проверка операторов MySQL (смена разработчика) перед переходом к следующему этапу конвейера.
Для этой цели я использую официальный образ докера MySQL с некоторыми изменениями (удалена необходимость в пароле root).Проверяемый скрипт будет выполняться в оболочке MySQL.При этом, если в сценарии есть ошибка, задание останавливается без продолжения и, в конечном итоге, по истечении времени ожидания.
Это моя работа:
Validate branch MySQL DB image:
stage: validate_branch_db_image
image: registry.gitlab.com/some-path/mysql-validator
script:
- echo "Validating MySQL image for branch ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
- service mysql start
- mysql < schema/create-database-schema.sql
- echo "Validation of MySQL image for branch ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME} is successful"
- service mysql stop
only:
refs:
- merge_requests
Примечание: мне пришлось запустить службу MySQL вручную, потому что изображение используется в качестве контекста выполнения задания.
При сбое строки mysql < schema/create-database-schema.sql
из-за синтаксической ошибки задание останавливается.В чем причина этого?
Я не уверен, что это лучший способ проверки сценариев SQL.Пожалуйста, также сообщите, если есть лучший способ достичь этого.