From 7ee394eb0e6dbfdfeaa81fecfa1ee2c00cda10b6 Mon Sep 17 00:00:00 2001 From: Szymon Kostrubiec Date: Mon, 8 Jul 2024 08:55:06 +0200 Subject: [PATCH] OP-352 - Apply Bitbag Bible fixes --- .github/workflows/build.yml | 30 +++++----- .github/workflows/coding_standard.yml | 81 +++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/coding_standard.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8edacbbb..f51f8639 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,8 +21,8 @@ jobs: fail-fast: false matrix: php: [ "8.1", "8.2", "8.3" ] - symfony: [ "^6.0" ] - sylius: [ "~1.13.0" ] + symfony: [ "^5.4", "^6.0" ] + sylius: [ "^1.12", "^1.13" ] node: [ "18.x", "20.x" ] mysql: [ "5.7", "8.0" ] env: @@ -30,7 +30,7 @@ jobs: DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?serverVersion=${{ matrix.mysql }}" steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -41,7 +41,7 @@ jobs: coverage: none - name: Setup Node - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ matrix.node }}" @@ -83,7 +83,7 @@ jobs: run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache Composer - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json **/composer.lock') }} @@ -104,12 +104,15 @@ jobs: - name: Install PHP dependencies run: composer install --no-interaction --no-scripts + - name: Install Behat driver + run: vendor/bin/bdi browser:google-chrome drivers + - name: Get Yarn cache directory id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" - name: Cache Yarn - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-node-${{ matrix.node }}-yarn-${{ hashFiles('**/package.json **/yarn.lock') }} @@ -122,7 +125,7 @@ jobs: - name: Prepare test application database run: | (cd tests/Application && bin/console doctrine:database:create -vvv) - (cd tests/Application && bin/console doctrine:schema:create -vvv) + (cd tests/Application && bin/console doctrine:migrations:migrate -n -vvv -q) - name: Prepare test application assets run: | @@ -141,23 +144,22 @@ jobs: - name: Validate database schema run: (cd tests/Application && bin/console doctrine:schema:validate) - - name: Run ECS - run: vendor/bin/ecs check src - - name: Run PHPSpec run: vendor/bin/phpspec run --ansi -f progress --no-interaction + - name: Run PHPUnit + run: vendor/bin/phpunit --colors=always + - name: Run Behat - if: ${{ matrix.sylius != '~1.13.0' }} + if: ${{ matrix.sylius != '^1.13.0' }} run: vendor/bin/behat --colors --strict -vvv --no-interaction --tags '~@sylius113' || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun --tags '~@sylius113' - name: Run Behat - if: ${{ matrix.sylius == '~1.13.0' }} + if: ${{ matrix.sylius == '^1.13.0' }} run: vendor/bin/behat --colors --strict -vvv --no-interaction --tags '~@sylius112' || vendor/bin/behat --colors --strict -vvv --no-interaction --rerun --tags '~@sylius112' - - name: Upload Behat logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: Behat logs diff --git a/.github/workflows/coding_standard.yml b/.github/workflows/coding_standard.yml new file mode 100644 index 00000000..e396d269 --- /dev/null +++ b/.github/workflows/coding_standard.yml @@ -0,0 +1,81 @@ +name: Coding standard + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: ~ + release: + types: [ created ] + workflow_dispatch: ~ + +jobs: + tests: + runs-on: ubuntu-latest + + name: "Sylius ${{ matrix.sylius }}, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}" + + strategy: + fail-fast: false + matrix: + php: [ "8.1", "8.2", "8.3" ] + symfony: [ "^5.4", "^6.4" ] + sylius: [ "^1.12", "^1.13" ] + node: [ "18.x", "20.x" ] + + steps: + - uses: actions/checkout@v3 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "${{ matrix.php }}" + extensions: intl + tools: symfony + coverage: none + + - name: Get Composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache Composer + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php-${{ matrix.php }}-composer-${{ hashFiles('**/composer.json', '**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php-${{ matrix.php }}-composer- + + - name: Restrict Symfony version + if: matrix.symfony != '' + run: | + composer global config --no-plugins allow-plugins.symfony/flex true + composer global require --no-progress --no-scripts --no-plugins "symfony/flex:^1.10" + composer config extra.symfony.require "${{ matrix.symfony }}" + + - name: Restrict Sylius version + if: matrix.sylius != '' + run: composer require "sylius/sylius:${{ matrix.sylius }}" --no-update --no-scripts --no-interaction + + - name: Install PHP dependencies + run: composer install --no-interaction + env: + SYMFONY_REQUIRE: ${{ matrix.symfony }} + + - name: Run PHPStan + run: vendor/bin/phpstan analyse -c phpstan.neon -l 8 src/ + + - name: Run ECS + run: vendor/bin/ecs + + - name: Failed build Slack notification + uses: rtCamp/action-slack-notify@v2 + if: ${{ failure() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') }} + env: + SLACK_CHANNEL: ${{ secrets.FAILED_BUILD_SLACK_CHANNEL }} + SLACK_COLOR: ${{ job.status }} + SLACK_ICON: https://github.com/rtCamp.png?size=48 + SLACK_MESSAGE: ':x:' + SLACK_TITLE: Failed build on ${{ github.event.repository.name }} repository + SLACK_USERNAME: ${{ secrets.FAILED_BUILD_SLACK_USERNAME }} + SLACK_WEBHOOK: ${{ secrets.FAILED_BUILD_SLACK_WEBHOOK }} \ No newline at end of file