diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41ff05c..99d049b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,128 +1,61 @@ name: CI -env: - APPLICATION_ENV: 'development' - APPLICATION_STORE: 'DE' - PROJECT: 'OpenAi' - DATABASE_VERSION: 10.2 - DATABASE_HOST: 127.0.0.1 - DATABASE_PORT: 3306 - DATABASE_NAME: eu-docker - DATABASE_USERNAME: root - DATABASE_PASSWORD: secret - DATABASE_ROOT_PASSWORD: secret - DATABASE_ALLOW_EMPTY_PASSWORD: false - DATABASE_CHARACTER_SET: utf8 - DATABASE_COLLATE: utf8_general_ci - on: - pull_request: push: branches: - - master + - 'master' + pull_request: workflow_dispatch: jobs: - ci: - name: "OpenAi" - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - php: [ '8.1', '8.2' ] + validation: + name: Validation + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - - name: Setup Database - uses: getong/mariadb-action@v1.1 - with: - host port: ${{ env.DATABASE_PORT }} - container port: ${{ env.DATABASE_PORT }} - character set server: ${{ env.DATABASE_CHARACTER_SET }} - collation server: ${{ env.DATABASE_COLLATE }} - mariadb version: ${{ env.DATABASE_VERSION }} - mysql database: ${{ env.DATABASE_NAME }} - mysql root password: ${{ env.DATABASE_ROOT_PASSWORD }} - mysql user: ${{ env.DATABASE_USERNAME }} - mysql password: ${{ env.DATABASE_PASSWORD }} - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: mbstring, intl, bcmath - tools: composer:v2 + - uses: actions/checkout@v3 - - name: Configure sysctl limits - run: | - sudo swapoff -a - sudo sysctl -w vm.swappiness=1 - sudo sysctl -w fs.file-max=262144 - sudo sysctl -w vm.max_map_count=262144 + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.2' + extensions: mbstring, intl, bcmath + coverage: none - - name: Composer get cache directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Composer Install + run: composer install --prefer-dist --no-interaction --profile - - name: Composer cache - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- + - name: Run validation + run: composer validate - - name: Composer validate - run: composer validate + - name: Syntax check + run: find ./src -path src -prune -o -type f -name '*.php' -print0 | xargs -0 -n1 -P4 php -l -n | (! grep -v "No syntax errors detected" ) - - name: Composer install - run: | - composer --version - composer install + - name: Run CodeStyle checks + run: composer cs-check - - name: Run CodeStyle checks - run: composer cs-check + - name: PHPStan setup + run: composer stan-setup - - name: Run PHPStan - run: composer stan + - name: Run PHPStan + run: composer stan lowest: name: Prefer Lowest - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - - name: Checkout@v2 - uses: actions/checkout@v2 - - - name: Validate composer.json and composer.lock - run: composer validate - - - name: Composer get cache directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Composer cache - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: '8.1' - extensions: mbstring, intl, bcmath + - uses: actions/checkout@v3 - - name: Composer prefer lowest - run: composer lowest-setup + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '8.1' + extensions: mbstring, intl, bcmath + coverage: none - - name: Run PHPStan (currently not running properly) - run: composer stan || true + - name: Composer Install + run: composer install --prefer-dist --no-interaction --profile - - name: Validate prefer lowest - run: vendor/bin/validate-prefer-lowest -m + - name: Composer Update + run: composer update --prefer-lowest --prefer-dist --no-interaction --profile -vvv diff --git a/composer.json b/composer.json index 05aeb6d..328e576 100644 --- a/composer.json +++ b/composer.json @@ -21,11 +21,10 @@ "minimum-stability": "dev", "prefer-stable": true, "scripts": { - "cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/", - "cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml src/", + "cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/", + "cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/SprykerStrict/ruleset.xml src/", "stan": "phpstan analyse -c phpstan.neon -l 8 src/", - "lowest": "validate-prefer-lowest", - "lowest-setup": "composer update --prefer-lowest --prefer-stable --prefer-dist --no-interaction && cp composer.json composer.backup && composer require --dev dereuromark/composer-prefer-lowest && mv composer.backup composer.json" + "stan-setup": "cp composer.json composer.backup && COMPOSER_MEMORY_LIMIT=-1 composer require --dev phpstan/phpstan:^0.12 && mv composer.backup composer.json" }, "extra": { "branch-alias": { diff --git a/phpstan.neon b/phpstan.neon index 6a51ace..5556e28 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,6 +1,8 @@ parameters: level: 8 + paths: + - src/ ignoreErrors: - - message: '#.*has invalid type Generated\\Shared\\Transfer\\.*#' - - message: '#.*on an unknown class Generated\\Shared\\Transfer\\.*#' - - message: '#.*has invalid return type Generated\\Shared\\Transfer\\.*#' + - '#Call to method .+ on an unknown class .+Transfer#' + - '#Parameter .+ of method .+ has invalid typehint type .+Transfer#' + - '#Return typehint of method .+ has invalid type .+Transfer#'