Firesphere/silverstripe-csp-headers

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2
jobs:
  cms4:
    docker:
      - image: cimg/php:8.1
        environment:
          - SS_DATABASE_CLASS=MySQLDatabase
          - SS_DATABASE_SERVER=127.0.0.1
          - SS_DATABASE_USERNAME=root
          - SS_DATABASE_PASSWORD=ubuntu
          - SS_DATABASE_NAME=circle_test
          - SS_ENVIRONMENT_TYPE=test
          - SS_DEFAULT_ADMIN_USERNAME=admin
          - SS_DEFAULT_ADMIN_PASSWORD=password
      - image: cimg/mariadb:10.6.4
        environment:
          - MYSQL_USER=user
          - MYSQL_ROOT_PASSWORD=ubuntu
          - MYSQL_DATABASE=circle_test
          - MYSQL_HOST=127.0.0.1

    steps:
      # Install additional requirements
      - checkout
      - run: composer config --no-plugins --no-interaction allow-plugins.composer/installers true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/vendor-plugin true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/recipe-plugin true
      - run: composer require silverstripe/recipe-cms:^4 -n
      - run: composer install -n
      - run: cp .circleci/circleci.env .env
      - run: cp .circleci/jstest.js.circleci jstest.js
      - run: sudo pecl install pcov
      - run: sudo docker-php-ext-enable pcov

      # run tests!
      - run: until nc -z -v -w30 127.0.0.1 3306; do sleep 1; done
      - run: vendor/bin/sake dev/build flush=all skipannotation=true
      - run: vendor/bin/phpunit -d memory_limit=512M tests/unit

  cms5:
    environment:
      CC_TEST_REPORTER_ID: 8fc82e19673fd65485d0f66a05d94bad2d3da1df8a848349fcdabab0767f452b
    docker:
      - image: cimg/php:8.1
        environment:
          - SS_DATABASE_CLASS=MySQLDatabase
          - SS_DATABASE_SERVER=127.0.0.1
          - SS_DATABASE_USERNAME=root
          - SS_DATABASE_PASSWORD=ubuntu
          - SS_DATABASE_NAME=circle_test
          - SS_ENVIRONMENT_TYPE=test
          - SS_DEFAULT_ADMIN_USERNAME=admin
          - SS_DEFAULT_ADMIN_PASSWORD=password
      - image: cimg/mariadb:10.6.4
        environment:
          - MYSQL_USER=user
          - MYSQL_ROOT_PASSWORD=ubuntu
          - MYSQL_DATABASE=circle_test
          - MYSQL_HOST=127.0.0.1

    steps:
      # Install additional requirements
      - checkout
      - run: composer config --no-plugins --no-interaction allow-plugins.composer/installers true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/vendor-plugin true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/recipe-plugin true
      - run: composer require silverstripe/recipe-cms:^5 -n
      - run: composer install -n
      - run: cp .circleci/circleci.env .env
      - run: cp .circleci/jstest.js.circleci jstest.js
#      - run: cp .circleci/circleci.csp.yml _config/circlecsp.yml
      - run: sudo pecl install pcov
      - run: sudo docker-php-ext-enable pcov

      # run tests!
      - run: until nc -z -v -w30 127.0.0.1 3306; do sleep 1; done
      - run: vendor/bin/sake dev/build flush=all skipannotation=true
      - run: vendor/bin/phpunit --coverage-clover=./clover.xml --log-junit ./coverage/junit.xml -d memory_limit=512M tests/unit
      - run:
          name: Code coverage reports
          command: |
            echo "---"
            echo "CodeCov:"
            echo "---"
            bash <(curl -s https://codecov.io/bash) -f clover.xml
      - run: vendor/bin/phpcs --standard=phpcs.xml.dist src tests/unit
  framework:
    docker:
      - image: cimg/php:8.1
        environment:
          - SS_DATABASE_CLASS=MySQLDatabase
          - SS_DATABASE_SERVER=127.0.0.1
          - SS_DATABASE_USERNAME=root
          - SS_DATABASE_PASSWORD=ubuntu
          - SS_DATABASE_NAME=circle_test
          - SS_ENVIRONMENT_TYPE=test
          - SS_DEFAULT_ADMIN_USERNAME=admin
          - SS_DEFAULT_ADMIN_PASSWORD=password
      - image: cimg/mariadb:10.6.4
        environment:
          - MYSQL_USER=user
          - MYSQL_ROOT_PASSWORD=ubuntu
          - MYSQL_DATABASE=circle_test
          - MYSQL_HOST=127.0.0.1

    steps:
      # Install additional requirements
      - checkout
      - run: composer config --no-plugins --no-interaction allow-plugins.composer/installers true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/vendor-plugin true
      - run: composer config --no-plugins --no-interaction allow-plugins.silverstripe/recipe-plugin true
      - run: composer install -n
      - run: cp .circleci/circleci.env .env
      - run: cp .circleci/jstest.js.circleci jstest.js
#      - run: cp .circleci/circleci.csp.yml _config/circlecsp.yml
      - run: sudo pecl install pcov
      - run: sudo docker-php-ext-enable pcov

      # run tests!
      - run: until nc -z -v -w30 127.0.0.1 3306; do sleep 1; done
      - run: vendor/bin/sake dev/build flush=all skipannotation=true
      - run: vendor/bin/phpunit -d memory_limit=512M tests/unit

workflows:
  version: 2
  dobuild:
    jobs:
      - cms4
      - cms5
      - framework