version: 2 jobs: frontend: working_directory: ~/repo docker: - image: circleci/node:10 steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "yarn.lock" }} - v1-dependencies- - run: yarn - save_cache: paths: - node_modules - ~/.yarn key: v1-dependencies-{{ checksum "yarn.lock" }} - run: yarn lint - run: yarn test --coverage - run: yarn codecov composer: working_directory: ~/repo docker: - image: blessingskin/ci:7.1 steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "composer.lock" }} - v1-dependencies- - run: composer install -n --prefer-dist - save_cache: paths: - vendor key: v1-dependencies-{{ checksum "composer.lock" }} - run: cp .env.testing .env - run: php artisan key:random - run: php artisan salt:random - persist_to_workspace: root: ~/repo paths: - . php7.1: working_directory: ~/repo docker: - image: blessingskin/ci:7.1 steps: - attach_workspace: at: ~/repo - run: touch storage/testing.sqlite - run: ./vendor/bin/phpunit --coverage-clover=coverage.xml - run: bash <(curl -s https://codecov.io/bash) -cF php php7.2: working_directory: ~/repo docker: - image: blessingskin/ci:7.2 steps: - attach_workspace: at: ~/repo - run: touch storage/testing.sqlite - run: ./vendor/bin/phpunit php7.3: working_directory: ~/repo docker: - image: blessingskin/ci:7.3 steps: - attach_workspace: at: ~/repo - run: touch storage/testing.sqlite - run: ./vendor/bin/phpunit release: working_directory: ~/workspace docker: - image: blessingskin/ci:release steps: - run: git clone https://github.com/bs-community/release-tool.git . - run: chmod +x ./release.sh - run: ./release.sh workflows: version: 2 install_and_test: jobs: - frontend - composer - php7.1: requires: - composer - php7.2: requires: - composer - php7.3: requires: - composer - release: requires: - php7.1 - php7.2 - php7.3 - frontend filters: tags: only: /^\d+\.\d+\.\d+/