diff --git a/.github/workflows/codeception.yml b/.github/workflows/codeception.yml index abadb2a5..dd4efc23 100644 --- a/.github/workflows/codeception.yml +++ b/.github/workflows/codeception.yml @@ -38,14 +38,15 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.2 ] - symfony: [ ^6.2 ] - pimcore: [ ~11.0.0 ] + php: [ 8.3 ] + symfony: [ ^6.4 ] + pimcore: [ ~11.4.0 ] include: - - pimcore: ~11.0.0 - template_tag: v11.0.0 + - pimcore: ~11.4.0 + template_tag: 2024.3 steps: - - uses: actions/checkout@v2 + - uses: nanasess/setup-chromedriver@v2 + - uses: actions/checkout@v4 with: path: lib/test-bundle @@ -98,9 +99,11 @@ jobs: - name: Setup Chromium run: | - nohup $CHROMEWEBDRIVER/chromedriver --url-base=/wd/hub /dev/null 2>&1 & + export DISPLAY=:99 + chromedriver --url-base=/wd/hub --port=9515 & + sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & - - name: Start Webserver and Chrome + - name: Start Symfony Server run: | curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir=$HOME/.symfony/bin ~/.symfony/bin/symfony server:start --port=8080 --dir=public --allow-http --no-tls --daemon @@ -108,10 +111,10 @@ jobs: - name: Get Composer Cache Directory id: composer-cache run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache Composer Downloads - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} @@ -136,7 +139,7 @@ jobs: vendor/bin/codecept run --env github -c ${{ github.workspace }}/lib/test-bundle - name: Log Output - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: failure() with: name: "Logs (PHP ${{ matrix.php }}, Pimcore ${{ matrix.pimcore }}, Symfony ${{ matrix.symfony }})" diff --git a/.github/workflows/ecs.yml b/.github/workflows/ecs.yml index c453731f..e910ce2d 100644 --- a/.github/workflows/ecs.yml +++ b/.github/workflows/ecs.yml @@ -37,14 +37,14 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.2 ] - symfony: [ ^6.2 ] - pimcore: [ ~11.0.0 ] + php: [ 8.3 ] + symfony: [ ^6.4 ] + pimcore: [ ~11.4.0 ] include: - - pimcore: ~11.0.0 - template_tag: v11.0.0 + - pimcore: ~11.4.0 + template_tag: 2024.3 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: path: lib/test-bundle @@ -88,10 +88,10 @@ jobs: - name: Get Composer Cache Directory id: composer-cache run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache Composer Downloads - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} @@ -114,4 +114,4 @@ jobs: continue-on-error: true run: | bin/console cache:warmup --env=test - vendor/bin/ecs check ${{ github.workspace }}/lib/test-bundle/src/JobsBundle --config ${{ github.workspace }}/lib/test-bundle/ecs.php \ No newline at end of file + vendor/bin/ecs check ${{ github.workspace }}/lib/test-bundle/src/ --config ${{ github.workspace }}/lib/test-bundle/ecs.php \ No newline at end of file diff --git a/.github/workflows/php-stan.yml b/.github/workflows/php-stan.yml index 26b9c3d3..e4e6c51e 100644 --- a/.github/workflows/php-stan.yml +++ b/.github/workflows/php-stan.yml @@ -37,14 +37,14 @@ jobs: options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: - php: [ 8.2 ] - symfony: [ ^6.2 ] - pimcore: [ ~11.0.0 ] + php: [ 8.3 ] + symfony: [ ^6.4 ] + pimcore: [ ~11.4.0 ] include: - - pimcore: ~11.0.0 - template_tag: v11.0.0 + - pimcore: ~11.4.0 + template_tag: 2024.3 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: path: lib/test-bundle @@ -88,10 +88,10 @@ jobs: - name: Get Composer Cache Directory id: composer-cache run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - name: Cache Composer Downloads - uses: actions/cache@v1 + uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} @@ -110,6 +110,10 @@ jobs: run: | bin/console assets:install public --relative --symlink + - name: Validate Container + run: | + bin/console lint:container + - name: Php Stan run: | bin/console cache:warmup --env=test diff --git a/UPGRADE.md b/UPGRADE.md index a0240a6d..c6920cb3 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -1,5 +1,8 @@ # Upgrade Notes +## 3.0.1 +- [BUGFIX] Fix connector env setup [#19](https://github.com/dachcom-digital/pimcore-jobs/issues/19) + ## Migrating from Version 2.x to Version 3.0.0 ### Global Changes diff --git a/config/pimcore/config.yaml b/config/pimcore/config.yaml index 7bee26c1..3e8ae550 100644 --- a/config/pimcore/config.yaml +++ b/config/pimcore/config.yaml @@ -5,13 +5,6 @@ pimcore: map: jobConnectorContext: JobsBundle\CoreExtension\JobConnectorContext -doctrine: - orm: - auto_generate_proxy_classes: '%kernel.debug%' - entity_managers: - default: - auto_mapping: true - doctrine_migrations: migrations_paths: 'JobsBundle\Migrations': '@JobsBundle/src/Migrations' diff --git a/src/DependencyInjection/Compiler/ConnectorEnvironmentPass.php b/src/DependencyInjection/Compiler/ConnectorEnvironmentPass.php new file mode 100644 index 00000000..8bc251e2 --- /dev/null +++ b/src/DependencyInjection/Compiler/ConnectorEnvironmentPass.php @@ -0,0 +1,28 @@ +getParameter('jobs.feed_host'); + $dataClass = $container->getParameter('jobs.data_class'); + + if (empty($feedHost)) { + $pimcoreConfig = $container->getParameter('pimcore.config'); + $feedHost = $pimcoreConfig['general']['domain']; + if (!str_contains($feedHost, 'http')) { + $feedHost = sprintf('https://%s', $feedHost); + } + } + + $connectorServiceDefinition = $container->getDefinition(EnvironmentService::class); + $connectorServiceDefinition->setArgument('$dataClass', $dataClass); + $connectorServiceDefinition->setArgument('$feedHost', $feedHost); + } +} diff --git a/src/DependencyInjection/JobsExtension.php b/src/DependencyInjection/JobsExtension.php index 5619bc9e..3da7b0d4 100644 --- a/src/DependencyInjection/JobsExtension.php +++ b/src/DependencyInjection/JobsExtension.php @@ -2,7 +2,6 @@ namespace JobsBundle\DependencyInjection; -use JobsBundle\Service\EnvironmentService; use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -41,26 +40,12 @@ public function load(array $configs, ContainerBuilder $container): void $container->setParameter('jobs.connectors.available', $availableConnectorsNames); $container->setParameter('jobs.logs.expiration_days', $config['log_expiration_days']); + $container->setParameter('jobs.feed_host', is_string($config['feed_host']) ? $config['feed_host'] : ''); + $container->setParameter('jobs.data_class', is_string($config['data_class']) ? $config['data_class'] : ''); - $this->setupEnvironment($container, $config); $this->checkGoogleConnectorDependencies($container, $loader, $availableConnectorsNames); } - protected function setupEnvironment(ContainerBuilder $container, array $config): void - { - $feedHost = is_string($config['feed_host']) ? $config['feed_host'] : ''; - $dataClass = is_string($config['data_class']) ? $config['data_class'] : ''; - - if (empty($feedHost)) { - $pimcoreConfig = $container->getParameter('pimcore.config'); - $feedHost = $pimcoreConfig['general']['domain']; - } - - $connectorServiceDefinition = $container->getDefinition(EnvironmentService::class); - $connectorServiceDefinition->setArgument('$dataClass', $dataClass); - $connectorServiceDefinition->setArgument('$feedHost', $feedHost); - } - /** * @throws \Exception */ diff --git a/src/JobsBundle.php b/src/JobsBundle.php index 73563213..ab860c51 100644 --- a/src/JobsBundle.php +++ b/src/JobsBundle.php @@ -4,6 +4,7 @@ use Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass; use JobsBundle\DependencyInjection\Compiler\ConnectorDefinitionPass; +use JobsBundle\DependencyInjection\Compiler\ConnectorEnvironmentPass; use JobsBundle\DependencyInjection\Compiler\ContextItemsResolverPass; use JobsBundle\Tool\Install; use Pimcore\Extension\Bundle\AbstractPimcoreBundle; @@ -25,6 +26,7 @@ public function build(ContainerBuilder $container): void { $this->configureDoctrineExtension($container); + $container->addCompilerPass(new ConnectorEnvironmentPass()); $container->addCompilerPass(new ConnectorDefinitionPass()); $container->addCompilerPass(new ContextItemsResolverPass()); } diff --git a/tests/_envs/github.yml b/tests/_envs/github.yml index ca9cafca..99f9fbe0 100644 --- a/tests/_envs/github.yml +++ b/tests/_envs/github.yml @@ -5,8 +5,9 @@ modules: port: 9515 restart: true wait: 1 + window_size: 1280x1024 capabilities: - chromeOptions: - args: ['--no-sandbox', '--disable-extensions', '--headless', '--disable-gpu', '--disable-dev-shm-usage', '--window-size=1024,768'] + 'goog:chromeOptions': + args: ['--no-sandbox', '--disable-extensions', '--headless', '--disable-gpu', '--disable-dev-shm-usage', '--window-size=1280,1024'] prefs: download.default_directory: '%TEST_BUNDLE_TEST_DIR%/_data/downloads' \ No newline at end of file diff --git a/tests/_envs/local.yml b/tests/_envs/local.yml index abd71796..605a31f5 100644 --- a/tests/_envs/local.yml +++ b/tests/_envs/local.yml @@ -7,4 +7,4 @@ modules: wait: 1 capabilities: chromeOptions: - args: ['--no-sandbox', '--disable-extensions', '--headless', '--disable-gpu', '--disable-dev-shm-usage', '--window-size=1024,768'] + args: ['--disable-extensions', '--headless', '--disable-gpu', '--disable-dev-shm-usage', '--window-size=1280,1024'] diff --git a/tests/_etc/config/app/config.yaml b/tests/_etc/config/app/config.yaml index b278a5d6..f7c0e900 100755 --- a/tests/_etc/config/app/config.yaml +++ b/tests/_etc/config/app/config.yaml @@ -11,6 +11,10 @@ services: - [setContainer, ['@service_container']] doctrine: + orm: + entity_managers: + default: + connection: default dbal: connections: default: