ellisio/laravel-phone

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2.1
jobs:
  build:
    parameters:
      php:
        type: string
      laravel:
        type: string
      phpunit:
        type: string
      coverage:
        type: boolean
        default: false
    docker:
      - image: circleci/php:<<parameters.php>>
    steps:
      - checkout
      - run:
          name: Install dependencies
          command: |
            composer require "laravel/framework:<<parameters.laravel>>" --no-update -n
            composer require "phpunit/phpunit:<<parameters.phpunit>>" --dev --no-update -n
            composer install --no-suggest --prefer-dist -n -o
      - when:
          condition: <<parameters.coverage>>
          steps:
            - run:
                name: Install Code Coverage
                command: |
                  curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
                  chmod +x ./cc-test-reporter
            - run:
                name: Run PHPUnit
                command: |
                  ./cc-test-reporter before-build
                  vendor/bin/phpunit --coverage-clover build/logs/clover.xml
                  ./cc-test-reporter after-build --coverage-input-type clover --exit-code $?
      - when:
          unless: <<parameters.coverage>>
          steps:
            - run:
                name: Run PHPUnit
                command: vendor/bin/phpunit
  release:
    docker:
      - image: circleci/node:latest
    steps:
      - checkout
      - run:
          name: Create release
          command: npx semantic-release
workflows:
  version: 2
  build:
    jobs:
      - build:
          name: "php7.2-6"
          php: "7.2"
          laravel: ^6.0
          phpunit: ^8.0
      - build:
          name: "php7.3-6"
          php: "7.3"
          laravel: ^6.0
          phpunit: ^8.0
      - build:
          name: "php7.2-7"
          php: "7.2"
          laravel: ^7.0
          phpunit: ^8.5
      - build:
          name: "php7.3-7"
          php: "7.3"
          laravel: ^7.0
          phpunit: ^8.5
          coverage: true
      - release:
          context: semantic-release
          filters:
            branches:
              only: master
          requires:
            - php7.2-6
            - php7.3-6
            - php7.2-7
            - php7.3-7