Служба конфигурации Gitlab postgresql

Я только начинаю работать с GitLab, и мне кажется, что моя конфигурация не работает. Я использую следующее:

image: maven:3.3-jdk-8-alpine

stages:
  - prepare
  - build

services:
  - postgres:latest

variables:
  POSTGRES_DB: my_database
  POSTGRES_USER: runner
  POSTGRES_PASSWORD: runner

prepare_db:
  stage: prepare
  image: postgres
  script:
  - export PGPASSWORD=$POSTGRES_PASSWORD
  - psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION \"uuid-ossp\";"

build:
  stage: build
  script: mvn clean test

Он отлично работает, если я просто хочу скомпилировать свой код, тогда сборка будет просто mvn clean compile, но для запуска тестов мне нужен экземпляр PostgreSQL. В моем коде я полагаюсь на UUID, поэтому мне нужно убедиться, что установлено расширение uuid-ossp.

В моем задании prepare_db я могу подключиться к экземпляру Postgres и выполнить команду. Я также проверил правильность установки расширения, введя вторую команду сценария SELECT uuid_generate_v4();, и она возвращает uuid.

Когда бегун переходит к заданию build, он продолжает говорить мне, что функция uuid_generate_v4() отсутствует. Мое задание prepare_db выполняется в другом экземпляре Postgres?


person Mekswoll    schedule 04.07.2018    source источник
comment
Вы дважды проверяли, что используете правильное имя базы данных в своем тесте?   -  person Ekans    schedule 05.07.2018
comment
@Ekans, да, URL-адрес, который я использую в настройках теста, jdbc:postgresql://postgres:5432/my_database   -  person Mekswoll    schedule 05.07.2018


Ответы (1)


Это происходит потому, что задание prepare_db полностью изолировано от задания сборки. Так что в основном он ничего не готовит. Чтобы исправить это, выполните следующие действия:

.prepare_db: &prepare_db |
  export PGPASSWORD=$POSTGRES_PASSWORD
  psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION \"uuid-ossp\";"

build:
  stage: build
  script:
  - *prepare_db 
  - mvn clean test
person Alex Faster    schedule 18.02.2020