177 lines
4.1 KiB
YAML
177 lines
4.1 KiB
YAML
version: 2.1
|
|
|
|
executors:
|
|
build:
|
|
docker:
|
|
- image: circleci/php:7.3-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
|
|
|
|
commands:
|
|
initialize:
|
|
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
|
|
- run:
|
|
command: |
|
|
curl -sSL "https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz" | sudo tar --strip-components=2 -xJ -C /usr/local/bin/ node-v12.16.3-linux-x64/bin/node
|
|
curl https://www.npmjs.com/install.sh | sudo bash
|
|
restore_composer:
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "composer.json" }}
|
|
- v1-dependencies-
|
|
save_composer:
|
|
steps:
|
|
- save_cache:
|
|
key: v1-dependencies-{{ checksum "composer.json" }}
|
|
paths:
|
|
- ./vendor
|
|
restore_npm:
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- v1-dependencies-{{ checksum "package.json" }}
|
|
- v1-dependencies-
|
|
save_npm:
|
|
steps:
|
|
- save_cache:
|
|
key: v1-dependencies-{{ checksum "package.json" }}
|
|
paths:
|
|
- ./node_modules
|
|
- ~/.yarn
|
|
|
|
jobs:
|
|
build:
|
|
executor: build
|
|
steps:
|
|
- initialize
|
|
|
|
- restore_composer
|
|
- run: composer install -n --prefer-dist
|
|
- save_composer
|
|
|
|
- restore_npm
|
|
- run: yarn install
|
|
- save_npm
|
|
|
|
- run: yarn run prod
|
|
|
|
- persist_to_workspace:
|
|
root: .
|
|
paths:
|
|
- public
|
|
|
|
test:
|
|
executor: build
|
|
steps:
|
|
- initialize
|
|
|
|
- restore_composer
|
|
- restore_npm
|
|
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
- run: php artisan migrate
|
|
|
|
# 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 eslint
|
|
- run:
|
|
name: eslint
|
|
command: yarn run eslint
|
|
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
|
|
|
|
test_resolver:
|
|
executor: build
|
|
environment:
|
|
TEST_USE_HTTP_MOCK: false
|
|
steps:
|
|
- initialize
|
|
|
|
- restore_composer
|
|
|
|
- attach_workspace:
|
|
at: .
|
|
|
|
- run: php artisan migrate
|
|
|
|
# Run unit test
|
|
- run:
|
|
command: |
|
|
mkdir -p /tmp/phpunit
|
|
./vendor/bin/phpunit --testsuite MetadataResolver --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
|
|
|
|
workflows:
|
|
version: 2.1
|
|
test:
|
|
jobs:
|
|
- build
|
|
- test:
|
|
requires:
|
|
- build
|
|
scheduled_resolver_test:
|
|
triggers:
|
|
- schedule:
|
|
cron: "4 0 * * 1"
|
|
filters:
|
|
branches:
|
|
only:
|
|
- develop
|
|
jobs:
|
|
- build
|
|
- test_resolver:
|
|
requires:
|
|
- build
|
|
|