Выполнение заката после того, как подача php ремесленника терпит неудачу в CircleCI - PullRequest
0 голосов
/ 26 мая 2019

Я работаю над файлом конфигурации CircleCi, в котором выполняются юнит-тесты и тесты в браузере (в сумерках).Тесты в CircleCi заканчиваются каждый раз по команде php artisan dusk.Php artisan serve также «отменяется», если я добавляю атрибут background: true.

  1. Объявление порта php artisan serve --port=8000
  2. Использование backgroud: true и php artisan serve &
  3. Пробная работа curl http://localhost:8000 (сбой)

файл конфигурации circleci

version: 2

jobs:
  Test:
    docker:
      - image: circleci/php:7.2-fpm-node-browsers
      - image: circleci/redis:5.0
      - image: circleci/mysql:5.7
        environment:
          MYSQL_ROOT_HOST: '%'
          MYSQL_ROOT_PASSWORD: ''
          MYSQL_USER: homestead
          MYSQL_PASSWORD: secret
          MYSQL_DATABASE: homestead
          MYSQL_ALLOW_EMPTY_PASSWORD: true

    environment:
      APP_ENV: testing
      APP_URL: http://localhost:8000
      APP_KEY: ###

      DB_HOST: 127.0.0.1
      DB_DATABASE: homestead
      DB_USERNAME: homestead
      DB_PASSWORD: secret

      REDIS_HOST: 127.0.0.1
      REDIS_PASSWORD: 'null'

      PUSHER_APP_ID: ###
      PUSHER_APP_KEY: ###
      PUSHER_APP_SECRET: ###
      PUSHER_APP_CLUSTER: ###

      MIX_PUSHER_APP_KEY: ###
      MIX_PUSHER_APP_CLUSTER: ###

    working_directory: ~/workspace

    steps:
      - checkout

      - run:
          name: Prepare Environment
          command: .circleci/kickstart.sh

      - restore_cache:
          keys:
            - composer-v1-{{ checksum "composer.lock" }}
            - composer-v1-
      - run: composer install -n --prefer-dist
      - save_cache:
          key: composer-v1-{{ checksum "composer.lock" }}
          paths:
            - vendor

      - restore_cache:
          keys:
            - node-v1-{{ checksum "package-lock.json" }}
            - node-v1-
      - run: npm install
      - save_cache:
          key: node-v1-{{ checksum "package-lock.json" }}
          paths:
            - node_modules

      - run:
          name: Build Artifacts
          command: npm run dev

      - run:
          name: Waiting for MySQL to be ready
          command: dockerize -wait tcp://127.0.0.1:3306 -timeout 120s

      - run: php artisan config:clear
      - run: php artisan config:cache
      - run: php artisan migrate:refresh --seed --database=mysql --force
      - run: php artisan dusk:install

      - run:
          name: Run PHP Unit Tests
          command: ./vendor/bin/phpunit

      - run:
          name: Run server
          command: php artisan serve --port=8000 &

      # - run:
      #    name: Run server
      #    command: php artisan serve --port=8000
      #    background: true

      - run:
          name: Test connection to server
          command: curl http://localhost:8000

      - run:
          name: Run E2E Tests
          command: php artisan dusk
          environment:
            APP_URL: http://localhost:8000

      - store_artifacts:
          path: ./tests/Browser/console
          destination: console

      - store_artifacts:
          path: ./tests/Browser/screenshots
          destination: screenshots

workflows:
  version: 2
  Build and Test:
    jobs:
      - Test

ошибка curl

#!/bin/bash -eo pipefail
php artisan serve --port=8000 &
curl http://localhost:8000
curl: (7) Failed to connect to localhost port 8000: Connection refused
Exited with code 7

Сумерки должны запускаться после запуска сервера

...