From 22a31852ac9ec0f17f8223e8c0cf0471d7197231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pysiak?= Date: Mon, 16 Dec 2024 07:00:35 +0100 Subject: [PATCH] Split CI builds to run faster --- .github/workflows/build.yml | 224 +++------------------ .github/workflows/ci_e2e-mysql.yaml | 254 ++++++++++++++++++++++++ .github/workflows/ci_static-checks.yaml | 116 +++++++++++ .github/workflows/matrix.json | 30 +++ symfony.lock | 12 ++ templates/admin/javascripts.html.twig | 1 - 6 files changed, 435 insertions(+), 202 deletions(-) create mode 100644 .github/workflows/ci_e2e-mysql.yaml create mode 100644 .github/workflows/ci_static-checks.yaml create mode 100644 .github/workflows/matrix.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 61b6c63d40..fe9d74ded6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,211 +1,33 @@ name: Build on: - push: - branches-ignore: - - "dependabot/**" - paths-ignore: - - "*.md" pull_request: paths-ignore: + - "adr/**" + - "docs/**" - "*.md" - release: - types: [created] - schedule: - - - cron: "0 1 * * 6" # Run at 1am every Saturday workflow_dispatch: ~ + push: + branches-ignore: + - 'dependabot/**' + - 'upmerge/**' -jobs: - tests: - runs-on: ubuntu-latest - - name: "PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, MySQL ${{ matrix.mysql }}, Node ${{ matrix.node }}" - - timeout-minutes: 90 - - strategy: - fail-fast: false - matrix: - php: ["8.3"] - symfony: ["^6.4", "^7.1"] - node: ["20.x"] - mysql: ["8.4"] - - env: - APP_ENV: test_cached - DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?serverVersion=${{ matrix.mysql }}" - - steps: - - - uses: actions/checkout@v4 - - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: "${{ matrix.php }}" - extensions: intl, mbstring - tools: symfony - coverage: none - - - - 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:^2.4" - composer config extra.symfony.require "${{ matrix.symfony }}" - - - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: "${{ matrix.node }}" - - - - name: Shutdown default MySQL - run: sudo service mysql stop - - - - name: Setup MySQL - uses: mirromutth/mysql-action@v1.1 - with: - mysql version: "${{ matrix.mysql }}" - mysql root password: "root" - - - - name: Output PHP version for Symfony CLI - run: php -v | head -n 1 | awk '{ print $2 }' > .php-version - - - - name: Install certificates - run: symfony server:ca:install - - - - name: Run Chrome Headless - run: google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 > /dev/null 2>&1 & - - - - name: Run webserver - run: symfony server:start --port=8080 --dir=public --daemon - - - - name: Restrict Symfony version - if: matrix.symfony != '' - run: composer config extra.symfony.require "${{ matrix.symfony }}" - - - - 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: Install PHP dependencies - run: composer install --no-interaction - - - - name: Get Yarn cache directory - id: yarn-cache - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - - - - name: Cache Yarn - uses: actions/cache@v4 - with: - path: ${{ steps.yarn-cache.outputs.dir }} - key: ${{ runner.os }}-node-${{ matrix.node }}-yarn-${{ hashFiles('**/package.json **/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node-${{ matrix.node }}-yarn- - - - - name: Install JS dependencies - run: yarn install - - - - name: Prepare test application database - run: | - APP_DEBUG=1 bin/console doctrine:database:create -vvv - bin/console doctrine:migrations:migrate -n -vvv - - - - name: Prepare test application assets - run: | - bin/console assets:install public -vvv - yarn encore production - - - - name: Prepare test application cache - run: bin/console cache:warmup -vvv - - - - name: Prepare Messenger transport (Doctrine) - run: bin/console messenger:setup-transports -vvv - - - - name: Load fixtures - run: bin/console sylius:fixtures:load -n - - - - name: Validate composer.json - run: composer validate --ansi --strict --no-check-all -# Restore before Sylius 2.0 release -# run: composer validate --ansi --strict --no-check-publish - - - - name: Run security check - run: symfony security:check - - - - name: Check coding standard - run: vendor/bin/ecs check src - - - - name: Run PHPStan - run: vendor/bin/phpstan analyse -c phpstan.dist.neon -l max src/ - - - - name: Validate database schema - run: bin/console doctrine:schema:validate - - - - name: Run PHPUnit - run: vendor/bin/phpunit --colors=always - - - - name: Install Behat driver - run: vendor/bin/bdi detect drivers - - - - name: Run non-UI Behat - run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@todo&&~@cli" --suite-tags="@api,@domain,@hybrid" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@todo&&~@cli" --suite-tags="@api,@domain,@hybrid" --rerun - - - - name: Run non-JS Behat - run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@javascript&&~@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@ui" || vendor/bin/behat --strict --no-interaction -vvv -f progress --tags="~@javascript&&~@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@ui" --rerun - - - - name: Run Behat (Chromedriver) - run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@ui" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@ui" --rerun || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@ui" --rerun +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }}-minimal + cancel-in-progress: true - - - name: Run Behat (Panther) - run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@ui" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@ui" --rerun || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@ui" --rerun +permissions: + contents: read - - - name: Upload Behat logs - uses: actions/upload-artifact@v4 - if: failure() - with: - name: "Behat logs (PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, MySQL ${{ matrix.mysql }})" - path: etc/build/ - if-no-files-found: ignore +jobs: + static-checks: + name: Static checks + uses: ./.github/workflows/ci_static-checks.yaml + with: + type: minimal + e2e-mysql: + name: End-to-end tests (MySQL) + needs: static-checks + uses: ./.github/workflows/ci_e2e-mysql.yaml + with: + type: minimal diff --git a/.github/workflows/ci_e2e-mysql.yaml b/.github/workflows/ci_e2e-mysql.yaml new file mode 100644 index 0000000000..2d773307fb --- /dev/null +++ b/.github/workflows/ci_e2e-mysql.yaml @@ -0,0 +1,254 @@ +name: End-to-End (MySQL) + +on: + workflow_dispatch: ~ + workflow_call: + inputs: + branch: + description: "Branch" + required: false + type: string + default: "" + type: + description: "Type of the build" + required: true + type: string + +permissions: + contents: read + +jobs: + get-matrix: + runs-on: ubuntu-latest + name: "Get matrix" + outputs: + matrix: ${{ steps.matrix.outputs.prop }} + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + uses: actions/checkout@v4 + if: "${{ inputs.branch == '' }}" + + - name: "Get matrix" + id: matrix + uses: notiz-dev/github-action-json-property@release + with: + path: '.github/workflows/matrix.json' + prop_path: '${{ inputs.type }}.e2e-mysql' + + behat-no-js: + needs: get-matrix + runs-on: ubuntu-latest + name: "Non-JS, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }} (${{ matrix.env || 'test_cached' }}), MySQL ${{ matrix.mysql }}, Twig ${{ matrix.twig }}" + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.get-matrix.outputs.matrix) }} + + env: + APP_ENV: ${{ matrix.env || 'test_cached' }} + DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?charset=utf8mb4&serverVersion=${{ matrix.mysql }}" + + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + if: "${{ inputs.branch == '' }}" + uses: actions/checkout@v4 + + - name: Prepare manifest.json files + run: | + mkdir -p public/build/admin + mkdir -p public/build/shop + mkdir -p public/build/app/admin + mkdir -p public/build/app/shop + echo "{}" > public/build/admin/manifest.json + echo "{}" > public/build/shop/manifest.json + echo "{}" > public/build/app/admin/manifest.json + echo "{}" > public/build/app/shop/manifest.json + + - name: Build application + uses: SyliusLabs/BuildTestAppAction@v2.3 + with: + build_type: "sylius" + cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + e2e: "yes" + e2e_js: "yes" + database_version: ${{ matrix.mysql }} + legacy_postgresql_setup: ${{ env.USE_LEGACY_POSTGRES_SETUP }} + php_version: ${{ matrix.php }} + symfony_version: ${{ matrix.symfony }} + node_version: "20.x" + + - name: Test installer + run: bin/console sylius:install --no-interaction -vvv + + - name: Run PHPUnit + run: vendor/bin/phpunit --colors=always + + - name: Run CLI Behat + run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@cli&&~@todo" --suite-tags="@cli" || vendor/bin/behat --strict --no-interaction -vvv -f progress --tags="@cli&&~@todo" --suite-tags="@cli" --rerun + + - name: Run non-UI Behat + run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@todo&&~@cli" --suite-tags="@api,@domain" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@todo&&~@cli" --suite-tags="@api,@domain" --rerun + + - name: Run non-JS Behat + run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="~@javascript&&~@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" || vendor/bin/behat --strict --no-interaction -vvv -f progress --tags="~@javascript&&~@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" --rerun + + - name: Upload logs + uses: actions/upload-artifact@v4 + if: failure() + with: + name: "Logs (non-JS, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}), Twig ${{ matrix.twig }}, MySQL ${{ matrix.mysql }} - ${{ github.run_id }}-${{ github.run_number }}" + path: | + etc/build/ + var/log + if-no-files-found: ignore + overwrite: true + + behat-ui-js-chromedriver: + needs: get-matrix + runs-on: ubuntu-latest + name: "JS with Chromedriver, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }} (${{ matrix.env || 'test_cached' }}), MySQL ${{ matrix.mysql }}, Twig ${{ matrix.twig }}" + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.get-matrix.outputs.matrix) }} + + env: + APP_ENV: ${{ matrix.env || 'test_cached' }} + DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?charset=utf8mb4&serverVersion=${{ matrix.mysql }}" + + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + if: "${{ inputs.branch == '' }}" + uses: actions/checkout@v4 + + - name: Get Composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: "Restore dependencies" + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + restore-keys: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + + - name: Restrict Twig + if: matrix.twig == '^2.12' + run: composer require --no-update --no-scripts --no-interaction "twig/twig:${{ matrix.twig }}" + + - name: Build application + uses: SyliusLabs/BuildTestAppAction@v2.3 + with: + build_type: "sylius" + cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + e2e: "yes" + e2e_js: "yes" + database_version: ${{ matrix.mysql }} + legacy_postgresql_setup: ${{ env.USE_LEGACY_POSTGRES_SETUP }} + php_version: ${{ matrix.php }} + symfony_version: ${{ matrix.symfony }} + node_version: "20.x" + + - name: Run Behat (Chromedriver) + run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" --rerun || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@mink:chromedriver&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" --rerun + + - name: Upload logs + uses: actions/upload-artifact@v4 + if: failure() + with: + name: "Logs (JS with Chromedriver, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, Twig ${{ matrix.twig }}, MySQL ${{ matrix.mysql }}) - ${{ github.run_id }}-${{ github.run_number }}" + path: | + etc/build/ + var/log + if-no-files-found: ignore + overwrite: true + + behat-ui-js-panther: + needs: get-matrix + runs-on: ubuntu-latest + name: "JS with Panther, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }} (${{ matrix.env || 'test_cached' }}), MySQL ${{ matrix.mysql }}, Twig ${{ matrix.twig }}" + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.get-matrix.outputs.matrix) }} + + env: + APP_ENV: ${{ matrix.env || 'test_cached' }} + DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?charset=utf8mb4&serverVersion=${{ matrix.mysql }}" + + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + if: "${{ inputs.branch == '' }}" + uses: actions/checkout@v4 + + - name: Get Composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: "Restore dependencies" + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + restore-keys: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + + - name: Restrict Twig + if: matrix.twig == '^2.12' + run: composer require --no-update --no-scripts --no-interaction "twig/twig:${{ matrix.twig }}" + + - name: Build application + uses: SyliusLabs/BuildTestAppAction@v2.3 + with: + build_type: "sylius" + cache_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + cache_restore_key: "${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }}" + e2e: "yes" + e2e_js: "yes" + database_version: ${{ matrix.mysql }} + legacy_postgresql_setup: ${{ env.USE_LEGACY_POSTGRES_SETUP }} + php_version: ${{ matrix.php }} + symfony_version: ${{ matrix.symfony }} + node_version: "20.x" + + - name: Install Behat driver + run: vendor/bin/bdi detect drivers + + - name: Run Behat (Panther) + run: vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" --rerun || vendor/bin/behat --colors --strict --no-interaction -vvv -f progress --tags="@javascript&&~@todo&&~@cli" --suite-tags="@hybrid,@ui" --rerun + + - name: Upload logs + uses: actions/upload-artifact@v4 + if: failure() + with: + name: "Logs (JS with Panther, PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}, Twig ${{ matrix.twig }}, MySQL ${{ matrix.mysql }}) - ${{ github.run_id }}-${{ github.run_number }}" + path: | + etc/build/ + var/log + if-no-files-found: ignore + overwrite: true diff --git a/.github/workflows/ci_static-checks.yaml b/.github/workflows/ci_static-checks.yaml new file mode 100644 index 0000000000..9b61bd91f9 --- /dev/null +++ b/.github/workflows/ci_static-checks.yaml @@ -0,0 +1,116 @@ +name: Static Analysis + +on: + workflow_dispatch: ~ + workflow_call: + inputs: + branch: + description: "Branch" + required: false + type: string + default: "" + type: + description: "Type of the build" + required: true + type: string + +permissions: + contents: read + +jobs: + get-matrix: + runs-on: ubuntu-latest + name: "Get matrix" + outputs: + matrix: ${{ steps.matrix.outputs.prop }} + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + if: "${{ inputs.branch == '' }}" + uses: actions/checkout@v4 + + - + name: "Get matrix" + id: matrix + uses: notiz-dev/github-action-json-property@release + with: + path: '.github/workflows/matrix.json' + prop_path: '${{ inputs.type }}.static-checks' + + static-checks: + needs: get-matrix + runs-on: ubuntu-latest + name: "PHP ${{ matrix.php }}, Symfony ${{ matrix.symfony }}" + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.get-matrix.outputs.matrix) }} + env: + APP_ENV: test_cached + DATABASE_URL: "mysql://root:root@127.0.0.1/sylius?charset=utf8mb4&serverVersion=8.0" + steps: + - name: "Checkout (With Branch)" + if: "${{ inputs.branch != '' }}" + uses: actions/checkout@v4 + with: + ref: ${{ inputs.branch }} + + - name: "Checkout" + if: "${{ inputs.branch == '' }}" + uses: actions/checkout@v4 + + - name: "Setup PHP" + uses: shivammathur/setup-php@v2 + with: + php-version: "${{ matrix.php }}" + ini-values: date.timezone=Europe/Warsaw, opcache.enable=1, opcache.enable_cli=0, opcache.memory_consumption=512, opcache.max_accelerated_files=65407, opcache.interned_strings_buffer=8, opcache.validate_timestamps=0, opcache.save_comments=1, opcache.fast_shutdown=0 + extensions: intl, gd, opcache, mysql, pdo_mysql + tools: symfony, composer-require-checker + coverage: none + + - name: "Restrict packages' versions" + run: | + composer global config --no-plugins allow-plugins.symfony/flex true + composer global require --no-progress --no-scripts --no-plugins "symfony/flex:^2.4" + composer config extra.symfony.require "${{ matrix.symfony }}" + + - name: Get Composer cache directory + id: composer-cache + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: "Setup cache" + uses: actions/cache@v4 + with: + path: | + ${{ steps.composer-cache.outputs.dir }} + key: ${{ github.run_id }}-${{ runner.os }}-${{ hashFiles('composer.json') }}-symfony-${{ matrix.symfony }} + + - name: "Require ext-random" + if: matrix.php == '8.2' + run: composer require ext-random --no-update --no-scripts --no-interaction + + - name: "Install dependencies" + run: composer update --no-interaction --no-scripts + + - name: "Validate composer.json" + run: composer validate --strict --no-check-version + + - name: "Check for security vulnerabilities" + run: symfony security:check + continue-on-error: true + + - name: "Validate Twig templates" + run: bin/console lint:twig src + + - name: "Validate Container" + run: bin/console lint:container + + - name: Validate Yaml files + run: bin/console lint:yaml src + + - name: Run PHPStan + run: vendor/bin/phpstan analyse diff --git a/.github/workflows/matrix.json b/.github/workflows/matrix.json new file mode 100644 index 0000000000..f889da3814 --- /dev/null +++ b/.github/workflows/matrix.json @@ -0,0 +1,30 @@ +{ + "minimal": { + "static-checks": { + "include": [ + { + "php": "8.2", + "symfony": "^6.4" + }, + { + "php": "8.3", + "symfony": "^7.1" + } + ] + }, + "e2e-mysql": { + "include": [ + { + "php": "8.2", + "symfony": "^6.4", + "mysql": "8.4" + }, + { + "php": "8.3", + "symfony": "^7.1", + "mysql": "8.4" + } + ] + } + } +} diff --git a/symfony.lock b/symfony.lock index a110e8a243..321f019066 100644 --- a/symfony.lock +++ b/symfony.lock @@ -262,6 +262,18 @@ ".env" ] }, + "symfony/form": { + "version": "7.2", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "7.2", + "ref": "7d86a6723f4a623f59e2bf966b6aad2fc461d36b" + }, + "files": [ + "config/packages/csrf.yaml" + ] + }, "symfony/framework-bundle": { "version": "7.1", "recipe": { diff --git a/templates/admin/javascripts.html.twig b/templates/admin/javascripts.html.twig index 0c21379ab3..f60719739f 100644 --- a/templates/admin/javascripts.html.twig +++ b/templates/admin/javascripts.html.twig @@ -1,2 +1 @@ - {{ encore_entry_script_tags('app-admin-entry', null, 'app.admin') }}