diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 3e7360b..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,151 +0,0 @@ -version: 2 - -workflows: - version: 2 - quality-tools: - jobs: - - unit-tests - - integration-tests - - mutation-tests: - requires: - - unit-tests - - phpstan - - phpcs - - composer-require-checker - -jobs: - unit-tests: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: mkdir -p ~/phpunit - - run: make test-unit FLAGS="--log-junit ~/phpunit/unit.xml" - - store_test_results: - path: ~/phpunit - - store_artifacts: - path: ~/phpunit - - integration-tests: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: mkdir -p ~/phpunit - - run: make test-integration FLAGS="--log-junit ~/phpunit/integration.xml" - - store_test_results: - path: ~/phpunit - - store_artifacts: - path: ~/phpunit - - mutation-tests: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: make test-mutation - - phpstan: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: make static-analysis - - phpcs: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: make cs-check - - composer-require-checker: - docker: - - image: circleci/php:7.4 - steps: - - run: sudo composer self-update - - checkout - - restore_cache: - keys: - - project-dependencies-{{ checksum "~/project/composer.lock" }} - - composer-cache - - run: make install-ci - - save_cache: - key: project-dependencies-{{ checksum "~/project/composer.lock" }} - paths: - - ~/project/vendor - - save_cache: - key: composer-cache - paths: - - ~/.composer/cache - - run: make composer-require-checker diff --git a/.github/actions/composer-install/action.yml b/.github/actions/composer-install/action.yml new file mode 100644 index 0000000..d7b6f39 --- /dev/null +++ b/.github/actions/composer-install/action.yml @@ -0,0 +1,20 @@ +name: Install dependencies +description: Install dependencies with Composer +runs: + using: 'composite' + steps: + - run: composer validate --strict + shell: bash + + - id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + shell: bash + + - uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - run: composer install -a -n --no-progress + shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..119cb6a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,91 @@ +name: Quality checks + +on: + pull_request: + +jobs: + test: + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php-version: + - "7.4" + - "8.0" + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-version }} + tools: composer:v2 + + - uses: ./.github/actions/composer-install + + - name: Run unit tests + run: make test-unit + + - name: Run mutation tests + run: make test-mutation + + - name: Run integration tests + run: make test-integration + + static-analysis: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: composer:v2 + + - uses: ./.github/actions/composer-install + + - name: Run static analysis + run: make static-analysis + + style-check: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: composer:v2 + + - uses: ./.github/actions/composer-install + + - name: Run style checker + run: make cs-check + + composer-require-checker: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: composer:v2 + + - uses: ./.github/actions/composer-install + + - name: Run ComposerRequireChecker + run: make composer-require-checker + diff --git a/composer.json b/composer.json index 1a7a0ab..bbaf407 100644 --- a/composer.json +++ b/composer.json @@ -2,6 +2,9 @@ "name": "dsantang/domain-events-doctrine", "description": "Package that provides an integration with Doctrine ORM to automatically dispatch Domain Events.", "type": "library", + "license": [ + "MIT" + ], "keywords": [ "domain event", "domain driven design", @@ -31,7 +34,7 @@ "require": { "php": "^7.4 || ^8.0", "doctrine/orm": "^2.8", - "dsantang/domain-events": "^0.4", + "dsantang/domain-events": "^0.5", "ramsey/uuid": "^4.1", "symfony/event-dispatcher": "^5.2", "symfony/event-dispatcher-contracts": "^2.4" diff --git a/composer.lock b/composer.lock index faec110..d324186 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f6e6c6ba11efab9939c46ce650347610", + "content-hash": "e2dac01d96fb0ce79f1e25f9896c9ffb", "packages": [ { "name": "brick/math", @@ -1055,28 +1055,28 @@ }, { "name": "dsantang/domain-events", - "version": "v0.4.0", + "version": "v0.5.0", "source": { "type": "git", "url": "https://github.com/dsantang/domain-events.git", - "reference": "4b070858a9f5a2b0e480d815218fc6144c56d157" + "reference": "f8994a72d808301e5412b657a76e98022c5d55b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dsantang/domain-events/zipball/4b070858a9f5a2b0e480d815218fc6144c56d157", - "reference": "4b070858a9f5a2b0e480d815218fc6144c56d157", + "url": "https://api.github.com/repos/dsantang/domain-events/zipball/f8994a72d808301e5412b657a76e98022c5d55b6", + "reference": "f8994a72d808301e5412b657a76e98022c5d55b6", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.4 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^5.0", - "infection/infection": "^0.10.6", - "phpstan/phpstan": "^0.10.5", - "phpstan/phpstan-strict-rules": "^0.10.1", - "phpunit/phpunit": "^7.4", - "squizlabs/php_codesniffer": "^3.3" + "doctrine/coding-standard": "^9.0", + "infection/infection": "^0.25", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^9.0", + "squizlabs/php_codesniffer": "^3.6" }, "suggest": { "dsantang/domain-events-doctrine": "To automatically dispatch and listen to this package's domain events when a doctrine transaction is finished." @@ -1088,9 +1088,18 @@ } }, "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], "authors": [ { "name": "Davide Santangelo" + }, + { + "name": "Giacomo Pinato" + }, + { + "name": "Giacomo Fornari" } ], "description": "A simple package that enables creation and caching of domain events.", @@ -1101,9 +1110,9 @@ ], "support": { "issues": "https://github.com/dsantang/domain-events/issues", - "source": "https://github.com/dsantang/domain-events/tree/master" + "source": "https://github.com/dsantang/domain-events/tree/v0.5.0" }, - "time": "2019-08-12T14:22:46+00:00" + "time": "2021-10-12T14:02:39+00:00" }, { "name": "ocramius/package-versions", @@ -6089,5 +6098,5 @@ "php": "^7.4 || ^8.0" }, "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" }