У меня есть тестовое задание, которое требует gradle для запуска теста, а также mysql. В этом примере показано, как использовать mysql. Проблема в том, что тег image в ссылке перекрывает мой глобальный тег image gradle, из-за которого gradle не найден. Есть ли способ использовать несколько изображений в одном задании или любом другом обходном приеме.
Это сокращенная версия .gitlab-ci.yml. Это полное:
image: gradle:jdk11
# Disable the Gradle daemon for Continuous Integration servers as correctness
# is usually a priority over speed in CI environments. Using a fresh
# runtime for each build is more reliable since the runtime is completely
# isolated from any previous builds.
variables:
# Configure mysql service (https://hub.docker.com/_/mysql/)
MYSQL_ROOT_PASSWORD: mysql
GRADLE_OPTS: "-Dorg.gradle.daemon=false"
## build configs....
test_MariaDBImpl:
needs:
- build_MariaDBImpl
stage: test
services:
- mysql
image: mysql
script:
- echo "create user if not exists 'test'@'localhost'; grant all privileges on *.* to 'test'@'localhost'; flush privileges;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql
- gradle cleanTest :MariaDBImpl:test
Редактировать 1: Одна из работ, о которой я подумал, это добавить before_script
и загрузить либо gradle, либо mysql, но я думаю, что есть лучший способ?
Редактировать 2: Или, может быть, создать docker изображение со всеми тремя и использовать его вместо этого?