Выполнение postgres сценариев инициализации при запуске Cypress на CI - PullRequest
2 голосов
/ 03 марта 2020

Я пытаюсь запустить Cypress на Gitlab CI.

Все работает как положено, но одна маленькая вещь ... мой скрипт инициализации БД (который запускается после каждого теста) не будет работать. Эта проблема не проходит мои тесты, а также задание CI.

Подумав, я понял, что скрипт setup.sh содержит команду psql, которая подключается к базе данных и нуждается в postgres (на локальном компьютере). На компьютере все тесты выполняются успешно, так как у меня установлен postgres локально).

Я использую cypress_included:3.8.0 образ, который не содержит postgres. Есть идеи как решить проблему? есть ли обходной путь? я должен вручную попытаться установить это непосредственно? (если так, то было бы неплохо увидеть пример)

Спасибо!

1 Ответ

1 голос
/ 06 марта 2020

Поскольку cypress/included:3.8.0 образ использует ОС Debian, таким образом, вы можете использовать команду apt-get в своих сценариях задания для установки некоторых зависимостей или пакетов. Если вы хотите установить PostgreSQL основной сервер баз данных и PostgreSQL клиент (psql) , вы можете добавить следующие команды в свою CI / CD работу scripts как показано ниже:

image: cypress/included:3.8.0

⋮

foo job:
    scripts:
        ...
        - apt-get update -qy && apt-get upgrade -qy
        - apt-get install -y postgresql postgresql-client postgresql-contrib
        ...
⋮    

Если вы просто хотите установить PostgreSQL клиент (psql) , удалите пакеты postgresql и postgresql-client из команды:

image: cypress/included:3.8.0

⋮

foo job:
    scripts:
        ...
        - apt-get update -qy && apt-get upgrade -qy
        - apt-get install -y postgresql-client
        ...
⋮    
...