Удаленное соединение postgres при сборке circleci для запуска тестов laravel phpunit - PullRequest
0 голосов
/ 21 сентября 2018

Мы используем laravel 5.6, postgresql и circleci в нашей производственной среде API и все еще пытаемся реализовать некоторые ключевые модульные тесты для запуска до объединения фиксации в master.

При попытке настроить удаленную базу данных postgresqlпри доступе по кругу возникает следующая проблема:

Наш .circleci / config.yml должен был извлекать пользовательский образ ( edunicastro / docker: latest ) и запускать тесты phpunit в "build "step

Но мы получаем следующее сообщение об ошибке:

PDOException: SQLSTATE[08006] [7] could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

Проблема заключается в том, что это предполагалось для подключения к нашей удаленной базе данных, но в нашей производственной среде у нас есть набор соединенийИспользование .env и laravel.

Я попытался скопировать ключ "DB_PGSQL_HOST" в наш config.yml, но ничего не изменилось, он продолжал пытаться подключиться к 127.0.0.1.

Использование ключа«PGHOST» вместо этого также не имел никакого эффекта.

Это релевантная часть «build» нашего config.yml:

version: 2
jobs:
  build:
    docker:
      - image: edunicastro/docker:latest
        environment:
            DB_PGSQL_CONNECTION: <prod_laravel_connection_name>
            DB_PGSQL_HOST: <prod_db_host>
            DB_PGSQL_PORT: 5432
            DB_PGSQL_DATABASE: <prod_db_name>
    working_directory: ~/repo
    steps:
      - checkout
      - restore_cache:
          keys:
          - v1-dependencies-{{ checksum "composer.json" }}
          - v1-dependencies-
      - run: composer install -n --prefer-dist
      - run: ./vendor/bin/phpunit
      - save_cache:
          paths:
            - ./vendor
          key: v1-dependencies-{{ checksum "composer.json" }}

1 Ответ

0 голосов
/ 21 сентября 2018

Хорошо, мне не хватало команды для копирования .env, прямо под - checkout:

- checkout
      - run: cp .env.test .env

Laravel уже настроен и настроен на его использование, поэтому мне не нужно было менятьвсе остальное.

...