version: 2 jobs: build: docker: - image: circleci/php:7.1-node-browsers environment: APP_DEBUG: true APP_ENV: testing APP_KEY: base64:f2tcw34GKT8EOtb5myZxJ8QLdgNivmyPhoQIPY2YfK8= DB_CONNECTION: pgsql DB_DATABASE: tissue DB_USERNAME: tissue DB_PASSWORD: tissue - image: circleci/postgres:10-alpine environment: POSTGRES_DB: tissue POSTGRES_USER: tissue POSTGRES_PASSWORD: tissue steps: - checkout - run: sudo apt update - run: sudo apt install -y libpq-dev - run: sudo docker-php-ext-install zip - run: sudo docker-php-ext-install pdo_pgsql - restore_cache: keys: - v1-dependencies-{{ checksum "composer.json" }} - v1-dependencies- - run: composer install -n --prefer-dist - save_cache: key: v1-dependencies-{{ checksum "composer.json" }} paths: - ./vendor - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} - v1-dependencies- - run: yarn install - save_cache: key: v1-dependencies-{{ checksum "package.json" }} paths: - ./node_modules - ~/.yarn - run: php artisan migrate - run: yarn run prod # Run linter - run: command: | mkdir -p /tmp/php-cs-fixer ./vendor/bin/php-cs-fixer fix --dry-run --diff --format=junit > /tmp/php-cs-fixer/php-cs-fixer.xml when: always - store_test_results: path: /tmp/php-cs-fixer # Run stylelint - run: name: stylelint command: yarn run stylelint when: always # Run unit test - run: command: | mkdir -p /tmp/phpunit ./vendor/bin/phpunit --log-junit /tmp/phpunit/phpunit.xml --coverage-clover=/tmp/phpunit/coverage.xml when: always - store_test_results: path: /tmp/phpunit - store_artifacts: path: /tmp/phpunit/coverage.xml # Upload coverage - run: command: bash <(curl -s https://codecov.io/bash) -f /tmp/phpunit/coverage.xml when: always