From 71ad8e600ec9e87788a8a0c6ed36af0d16cae11b Mon Sep 17 00:00:00 2001 From: Hugo Duval <42731924+hdasdoria@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:49:08 +0100 Subject: [PATCH 1/3] add github workflow --- .github/workflows/php.yml | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/php.yml diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml new file mode 100644 index 0000000..16f60e4 --- /dev/null +++ b/.github/workflows/php.yml @@ -0,0 +1,40 @@ +name: PHP Composer + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Validate composer.json and composer.lock + run: composer validate --strict + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v3 + with: + path: vendor + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + + - name: Install dependencies + run: composer install --prefer-dist --no-progress + + # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit" + # Docs: https://getcomposer.org/doc/articles/scripts.md + + - name: Easy Coding Standard GitHub Action by pietrzakadrian + uses: pietrzakadrian/easy-coding-standard-github-action@v2.0.5 + From 0534c663e5e239aab8b61758f735624a4c500b2b Mon Sep 17 00:00:00 2001 From: Hugo Duval <42731924+hdasdoria@users.noreply.github.com> Date: Tue, 14 Nov 2023 11:51:42 +0100 Subject: [PATCH 2/3] fix github workflow --- .github/workflows/php.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 16f60e4..68420b1 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -37,4 +37,7 @@ jobs: - name: Easy Coding Standard GitHub Action by pietrzakadrian uses: pietrzakadrian/easy-coding-standard-github-action@v2.0.5 + with: + config: ecs.php #configuration file + directories: src tests #list of directories to check (optional) From bcba35d7ca488bb59347907fffa41ceacc4da375 Mon Sep 17 00:00:00 2001 From: Hugo Duval <42731924+hdasdoria@users.noreply.github.com> Date: Tue, 14 Nov 2023 14:38:32 +0100 Subject: [PATCH 3/3] add Build action --- .github/workflows/build.yml | 111 ++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..3e10386 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,111 @@ +name: Build + +on: + push: + branches-ignore: + - 'dependabot/**' + pull_request: ~ + release: + types: [created] + schedule: + - + cron: "0 1 * * 6" + 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.0", "8.1"] + symfony: ["5.4.*", "^6.0"] + sylius: ["^1.12"] + + env: + APP_ENV: test + + steps: + - + uses: actions/checkout@v3 + + - + name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: "${{ matrix.php }}" + extensions: intl + tools: flex,symfony + coverage: none + + - + name: Output PHP version for Symfony CLI + run: php -v | head -n 1 | awk '{ print $2 }' > .php-version + + - + name: Get Composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - + name: Cache Composer + uses: actions/cache@v3 + 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: Configure global composer + run: | + composer global config --no-plugins allow-plugins.symfony/flex true + composer global require --no-progress --no-scripts --no-plugins "symfony/flex:^2.2.2" + + - + name: Restrict Symfony version + if: matrix.symfony != '' + run: | + 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: Validate composer.json + run: composer validate --ansi --strict + + - + name: Run ECS + run: vendor/bin/ecs check --config=ecs.php --clear-cache src tests + + - + name: Run PHPStan + run: vendor/bin/phpstan analyse -c phpstan.neon -l max src/ + + - + name: Run Psalm + run: vendor/bin/psalm + + - + 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 + run: vendor/bin/behat --colors -vvv --no-interaction || vendor/bin/behat --colors -vvv --no-interaction --rerun