From e38a83c3a269e80dcf4a83a7d937cc1691b207e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20PLANCHAT?= Date: Fri, 20 Nov 2020 23:14:42 +0100 Subject: [PATCH] Feature/GitHub actions test stacks (#17) * Added Github action to run image:build command * Fixed Composer version to <2.0 * Added 4 build targets for OroCommerce 4.1 with PHP 7.4 * Added 4 build targets for OroCommerce 4.1 with PHP 7.3 * Added 4 build targets for OroCommerce 3.1 with PHP 7.2 * Added 4 build targets for OroCommerce 3.1 with PHP 7.1 * Added 4 build targets for OroCRM 4.1 with PHP 7.4 * Added 4 build targets for OroCRM 4.1 with PHP 7.3 * Added 4 build targets for OroCRM 3.1 with PHP 7.2 * Added 4 build targets for OroCRM 3.1 with PHP 7.1 * Changed the minimal PHP versions for Oro 4.2 * Changed the docker login method in the Github actions * Changed the docker login method in the Github actions * Added Marello and Middleware image builds in the Github Actions * Reorganized docs * Removed PHP 7.3 fixtures for Oro 4.2, as this combination has no editor support * Updated timeout in the PHPUnit test runner * Updated test runner trigger condition * Reactivated Blackfire, Xdebug and Elastic Stack fixtures --- .github/workflows/build.yml | 1365 ++++++++++++++++- .github/workflows/package.yml | 39 + .github/workflows/test.yml | 6 +- README.md | 613 +------- config/builds.php | 48 +- docs/application/marello.md | 41 + docs/application/middleware.md | 31 + docs/application/orocommerce.md | 37 + docs/application/orocrm.md | 43 + docs/application/oroplatform.md | 43 + docs/docker-for-mac-optimizations.md | 108 ++ docs/faq.md | 233 +++ docs/index.md | 14 - docs/installation.md | 38 + docs/oroplatform.md | 20 - docs/sunsetting-policy.md | 48 + docs/usage.md | 65 + environments/marello/ee/Dockerfile | 25 + environments/middleware/ee/Dockerfile | 12 +- environments/native/php@5.6/cli/Dockerfile | 2 +- environments/native/php@7.1/cli/Dockerfile | 2 +- environments/native/php@7.2/cli/Dockerfile | 2 +- environments/native/php@7.3/cli/Dockerfile | 2 +- environments/native/php@7.4/cli/Dockerfile | 2 +- environments/native/php@8.0/cli/Dockerfile | 2 +- environments/orocommerce/ee/Dockerfile | 25 + environments/orocrm/ee/Dockerfile | 25 + src/Domain/Packaging/Native/PHP/Tag.php | 2 +- .../Packaging/Native/PHP/TagVariation.php | 10 +- .../MarelloEnterpriseEditionRepository.php | 36 +- .../MiddlewareEnterpriseEditionRepository.php | 8 +- .../OroCRMCommunityEditionRepository.php | 6 +- .../OroCRMEnterpriseEditionRepository.php | 26 +- .../OroCommerceCommunityEditionRepository.php | 4 +- ...OroCommerceEnterpriseEditionRepository.php | 4 +- .../OroPlatformCommunityEditionRepository.php | 4 +- ...OroPlatformEnterpriseEditionRepository.php | 6 +- src/Domain/Packaging/Tag/TagTrait.php | 2 +- .../Packaging/Tag/TagVariationTrait.php | 61 + .../Assertion/CommandRunnerHasRunCommands.php | 19 +- ...cessMatcher.php => CommandExpectation.php} | 9 +- test/Fixture/Placeholder/Any.php | 5 + .../Placeholder/ContextReplacement.php | 12 +- test/Fixture/Placeholder/Regex.php | 5 + test/Fixture/PlaceholderInterface.php | 1 + .../Platform/MarelloCommunityFixture.php | 40 +- .../Platform/MarelloEnterpriseFixture.php | 50 +- .../Platform/MiddlewareCommunityFixture.php | 16 +- .../Platform/MiddlewareEnterpriseFixture.php | 20 +- .../Platform/OroCRMCommunityFixture.php | 158 +- .../Platform/OroCRMEnterpriseFixture.php | 79 +- .../Platform/OroCommerceCommunityFixture.php | 57 +- .../Platform/OroCommerceEnterpriseFixture.php | 69 +- .../Platform/OroPlatformCommunityFixture.php | 52 +- .../Platform/OroPlatformEnterpriseFixture.php | 65 +- test/Image/ImageBuildWithMySQLTest.php | 4 +- test/Image/ImageBuildWithPostgreSQLTest.php | 104 ++ test/Stack/Assertion/AssertTrait.php | 43 + test/WizardAssertionFixtureProvider.php | 3 +- 59 files changed, 2959 insertions(+), 912 deletions(-) create mode 100644 .github/workflows/package.yml create mode 100644 docs/application/marello.md create mode 100644 docs/application/middleware.md create mode 100644 docs/application/orocommerce.md create mode 100644 docs/application/orocrm.md create mode 100644 docs/application/oroplatform.md create mode 100644 docs/docker-for-mac-optimizations.md create mode 100644 docs/faq.md delete mode 100644 docs/index.md create mode 100644 docs/installation.md delete mode 100644 docs/oroplatform.md create mode 100644 docs/sunsetting-policy.md create mode 100644 docs/usage.md create mode 100644 src/Domain/Packaging/Tag/TagVariationTrait.php rename test/{ProcessMatcher.php => CommandExpectation.php} (83%) create mode 100644 test/Image/ImageBuildWithPostgreSQLTest.php create mode 100644 test/Stack/Assertion/AssertTrait.php diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 800faa6..cb8d3e9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,16 +1,16 @@ -name: Kloud Build +name: Kloud Build Docker images on: release: types: - created - push: - branches: [ master ] - pull_request: - branches: [ master ] jobs: - build: + build-all: runs-on: ubuntu-latest steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - uses: actions/checkout@v2 - name: Validate composer.json and composer.lock run: composer validate @@ -25,18 +25,1347 @@ jobs: - name: Install dependencies if: steps.composer-cache.outputs.cache-hit != 'true' run: composer install --prefer-dist --no-progress --no-suggest --no-dev - - name: Build the Phar package - uses: gplanchat/github-action-box@master + - name: Build for OroPlatform CE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'oroplatform' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'oroplatform' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'oroplatform' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'oroplatform' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'oroplatform' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'oroplatform' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'oroplatform' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'oroplatform' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'oroplatform' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'oroplatform' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'oroplatform' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'oroplatform' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.2' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform CE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.2' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.2' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroPlatform EE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'oroplatform' + application-version: '4.2' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocrm' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocrm' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocrm' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 env: - BOX_SECRET_KEY: ${{secrets.BOX_SECRET_KEY}} - BOX_SECRET_KEY_PASSPHRASE: ${{secrets.BOX_SECRET_KEY_PASSPHRASE}} - - uses: actions/upload-artifact@v2 + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master with: - name: kloud.phar - path: build/kloud.phar - - uses: actions/upload-artifact@v2 + php-version: '7.1' + application: 'orocrm' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocrm' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master with: - name: kloud.phar.pubkey - path: build/kloud.phar.pubkey -# - name: Build the Docker image -# run: docker build build/ --file Dockerfile --tag my-image-name:$(date +%s) + php-version: '7.2' + application: 'orocrm' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocrm' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocrm' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocrm' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocrm' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocrm' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocrm' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.2' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM CE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.2' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.2' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCRM EE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocrm' + application-version: '4.2' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocommerce' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocommerce' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 3.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocommerce' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 3.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'orocommerce' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocommerce' + application-version: '3.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocommerce' + application-version: '3.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 3.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocommerce' + application-version: '3.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 3.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'orocommerce' + application-version: '3.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocommerce' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocommerce' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.1 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocommerce' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.1 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'orocommerce' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.1 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.1 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.2' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce CE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.2' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.2 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.2' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for OroCommerce EE 4.2 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'orocommerce' + application-version: '4.2' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.0 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.0' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.0 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.0' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.0 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.0' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.0 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.0' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.0 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.0' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.0 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.0' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.0 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.0' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.0 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.0' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.1 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.1 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.1' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.1' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.1 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.1' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.1 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.1' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.2 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.2' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.2 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.2' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.2 on PHP 7.1 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.2' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.2 on PHP 7.1 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.2' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.2 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.1' + application: 'marello' + application-version: '2.2' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 2.2 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.2' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.2 on PHP 7.2 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.2' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 2.2 on PHP 7.2 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.2' + application: 'marello' + application-version: '2.2' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 3.0 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'marello' + application-version: '3.0' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 3.0 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'marello' + application-version: '3.0' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 3.0 on PHP 7.3 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'marello' + application-version: '3.0' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 3.0 on PHP 7.3 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.3' + application: 'marello' + application-version: '3.0' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 3.0 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'marello' + application-version: '3.0' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello CE 3.0 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'marello' + application-version: '3.0' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 3.0 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'marello' + application-version: '3.0' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Marello EE 3.0 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'marello' + application-version: '3.0' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Middleware CE 1.0 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'middleware' + application-version: '1.0' + edition: 'community' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Middleware CE 1.0 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'middleware' + application-version: '1.0' + edition: 'community' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Middleware EE 1.0 on PHP 7.4 with PostgreSQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'middleware' + application-version: '1.0' + edition: 'enterprise' + dbms: 'postgresql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build for Middleware EE 1.0 on PHP 7.4 with MySQL + uses: gplanchat/github-action-kloud-build@master + with: + php-version: '7.4' + application: 'middleware' + application-version: '1.0' + edition: 'enterprise' + dbms: 'mysql' + with-blackfire: 1 + with-xdebug: 1 + push: 1 + env: + DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} + DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml new file mode 100644 index 0000000..02870f0 --- /dev/null +++ b/.github/workflows/package.yml @@ -0,0 +1,39 @@ +name: Kloud Package Build +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Validate composer.json and composer.lock + run: composer validate + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + - name: Install dependencies + if: steps.composer-cache.outputs.cache-hit != 'true' + run: composer install --prefer-dist --no-progress --no-suggest --no-dev + - name: Build the Phar package + uses: gplanchat/github-action-box@master + env: + BOX_SECRET_KEY: ${{secrets.BOX_SECRET_KEY}} + BOX_SECRET_KEY_PASSPHRASE: ${{secrets.BOX_SECRET_KEY_PASSPHRASE}} + - uses: actions/upload-artifact@v2 + with: + name: kloud.phar + path: build/kloud.phar + - uses: actions/upload-artifact@v2 + with: + name: kloud.phar.pubkey + path: build/kloud.phar.pubkey +# - name: Build the Docker image +# run: docker build build/ --file Dockerfile --tag my-image-name:$(date +%s) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e415bf1..7e8912b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,5 +1,5 @@ -name: Kloud Test -on: [push, pull_request] +name: Kloud Run Tests +on: [push] jobs: phpspec: @@ -41,4 +41,4 @@ jobs: - name: Run PHPUnit test suite run: composer run-script phpunit env: - COMPOSER_PROCESS_TIMEOUT: 900 + COMPOSER_PROCESS_TIMEOUT: 1800 diff --git a/README.md b/README.md index cff3941..55db7db 100644 --- a/README.md +++ b/README.md @@ -1,600 +1,27 @@ Docker images and stacks for Oro and Marello development === -This project aims at building your Docker stack for [OroCommerce](https://oroinc.com/b2b-ecommerce/), [OroCRM](https://oroinc.com/orocrm/), [OroPlatform](https://oroinc.com/oroplatform/) and [Marello](https://www.marello.com/) development. +This project aims at building your Docker stack for +[OroCommerce](https://oroinc.com/b2b-ecommerce/), +[OroCRM](https://oroinc.com/orocrm/), +[OroPlatform](https://oroinc.com/oroplatform/) +and [Marello](https://www.marello.com/) development. -> ⚠️ Nota: Those stacks are not suited for production hosting, but to provide an environment based on Docker as identical as possible to OroCloud on a personal computer. +> ⚠️ Nota: Those stacks are not suited for production hosting, +> but to provide an environment based on Docker as identical as +> possible to OroCloud and MarelloCloud on a personal computer. -* [Installation](#installation) -* [Usage](#usage) -* [Frequently Asked Questions](#frequently-asked-questions) -* [Docker for Mac optimizations](#docker-for-mac-optimizations) -* [Supported versions and flavors](#supported-versions-and-flavours) - * [OroPlatform](#oroplatform) - * [OroCRM](#orocrm) - * [OroCommerce](#orocommerce) - * [Marello](#marello) - * [Middleware](#middleware) - -Installation ---- - -### Installing system-wide the `kloud` command - -While installing system-wide, you will need administrator privilleges to install the command inside `/usr/local/bin/` directory. - -``` -sudo curl -L -o /usr/local/bin/kloud https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar -sudo curl -L -o /usr/local/bin/kloud.pubkey https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar.pubkey -sudo chmod +x /usr/local/bin/kloud -``` - -### Installing the Phar package in your project - -While installing in your project, no administrator privilege is required, the phar package will be available in the `bin/` directory. - -``` -curl -L -o bin/kloud.phar https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar -curl -L -o bin/kloud.phar.pubkey https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar.pubkey -chmod +x bin/kloud.phar -``` - -We also recommend to add both files to your `.gitignore` file. - -### If you want to use the pre-packaged docker image - -If you do not want to install the command on your machine, a Docker image is ready for one-shot usages and can be executed this way: - -``` -docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock \ - -v $HOME/.docker:/opt/docker/.docker \ - -v $PWD:/app \ - kiboko/kloud -``` - -Usage ---- - -### Initialize your stack - -In a new project, after cloning the original application repository, you can initialize the Docker stack configuration you will need. -You can invoke the following command that will guess what you need and a wizard will ask you a few questions about your preferences: - -`kloud stack:init` - -Once the command is finished, you will have a file named `.env.dist` containing the required environment variables for the stack. -This file has to be renamed to `.env` in order to be used by Docker Compose. -The command have set some ports values for all services, you may wish to change them depending on your environment. - -#### Available command line options - -* Database engine selection - * `--mysql`: Set up the application to use MySQL. - * `--postgresql`: Set up the application to use PostgreSQL. - -* Xdebug a debugger for PHP - * `--with-xdebug`: Set up the application to use Xdebug. - * `--without-xdebug`: Set up the application without Xdebug. - -* Blackfire an APM for PHP performance optimizations - * `--with-blackfire`: Set up the application to use Blackfire. - * `--without-blackfire`: Set up the application without Blackfire. - -* Dejavu, An ElasticSearch UI - * `--with-dejavu`: Set up the application to use Dejavu UI. - * `--without-dejavu`: Set up the application without Dejavu UI. - -* Elastic Stack for application logging - * `--with-elastic-stack`: Set up the application to use Elastic Stack logging. - * `--without-elastic-stack`: Set up the application without Elastic Stack logging. - -* Mac OS optimizations on data volumes - * `--with-macos-optimizations`: Set up the application to use Docker for Mac optimizations. - * `--without-macos-optimizations`: Set up the application without Docker for Mac optimizations. - -### Update your stack - -In an existing project, you can upgrade the docker stack configuration. automagically. -You can invoke the following command that will guess what services needs to be updated and in case of differences, a wizard will ask you what you wish to keep or delete: - -`kloud stack:update` - -### Build the required images - -If you need to build the images you need in a stack, you can execute the following command: - -`kloud image:build` - -To enable experimental images, you will need to add option `--with-experimental`. - -### Test the required images - -If you need to test if the images you are using are following every constraint you would expect: - -`kloud image:test` - -Frequently Asked Questions +Documentation --- -### I am having some warnings while launching `docker-compose up` for the first time - -If you are having this sort of messages: - -``` -WARNING: The MAILCATCHER_PORT variable is not set. Defaulting to a blank string. -ERROR: The Compose file './docker-compose.yml' is invalid because: -services.mail.ports contains an invalid type, it should be a number, or an object -``` - -Those warnings and errors are due to missing environment variables, probably because you did -not copy the `.env.dist` file to a `.env` file, or you juste made a `stack:upgrade` and some -new environment variables are required. - -### What is the use of the `I_AM_DEVELOPER_DISABLE_INDEX_IP_CHECK` environment variable? - -This environment variable is used to disable the IP check in the `public/index_dev.php` file. -To benefit from this feature, you will need to apply the following patch: - -```patch -Index: public/index_dev.php -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== ---- public/index_dev.php -+++ public/index_dev.php -@@ -13,9 +13,12 @@ - - // This check prevents access to debug front controllers that are deployed by accident to production servers. - // Feel free to remove this, extend it, or make something more sophisticated. --if (isset($_SERVER['HTTP_CLIENT_IP']) -- || isset($_SERVER['HTTP_X_FORWARDED_FOR']) -- || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) -+if (!isset($_ENV['I_AM_DEVELOPER_DISABLE_INDEX_IP_CHECK']) -+ && ( -+ isset($_SERVER['HTTP_CLIENT_IP']) -+ || isset($_SERVER['HTTP_X_FORWARDED_FOR']) -+ || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) -+ ) - ) { - header('HTTP/1.0 403 Forbidden'); - exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); -``` - -### How to access My application's frontend? - -The application frontend can be accessed through the port defined in the `HTTP_PORT` -environment variable value. - -### How to switch between dev/prod/xdebug environments? (experimental) - -We have built a [Firefox/Chrome plugin](https://github.com/kiboko-labs/kiboko-symfony-env) to help you switch between environments. - -This extension is currently experimental and is limited to [a few domain names](https://github.com/kiboko-labs/kiboko-symfony-env#supported-domains). It may fit your needs as is, but be aware that you may need to manually package the extension if you need other domain names. - -![Capture of the plugin in action](https://github.com/kiboko-labs/kiboko-symfony-env/raw/master/screenshot.png) - -### How to configure the mailer in the `parameters.yml` file? - -The parameters should be set as the following: - -```yaml -parameters: - mailer_transport: smtp - mailer_host: mail - mailer_port: 1025 - mailer_encryption: null - mailer_user: null - mailer_password: null -``` - -Notice that the `MAILER_PORT` variable is not used, as this port is the one from your -computer's point of view, not a container's point of view in the stack. - -### How to configure the websocket service in the `parameters.yml` file? - -The parameters should be set as the following on Oro 4.1+: - -```yaml -parameters: - websocket_bind_address: 0.0.0.0 - websocket_bind_port: 8080 - websocket_frontend_host: '*' - websocket_frontend_port: '%env(WEBSOCKET_PORT)%' - websocket_frontend_path: '' - websocket_backend_host: '*' - websocket_backend_port: '%env(WEBSOCKET_PORT)%' - websocket_backend_path: '' - websocket_backend_transport: tcp - websocket_backend_ssl_context_options: { } -``` - -Notice that the `WEBSOCKET_PORT` variable is not used for the `websocket_bind_port`, as this -port is the one from your computer's point of view, not a container's point of view in the stack. - -### How to configure the database service in the `parameters.yml` file? - -The parameters should be set as the following on Oro 4.1+: - -```yaml -parameters: - database_driver: pdo_pgsql - database_host: sql - database_port: null - database_name: '%env(DATABASE_NAME)%' - database_user: '%env(DATABASE_USER)%' - database_password: '%env(DATABASE_PASS)%' - database_driver_options: { } -``` - -Notice that the `DATABASE_PORT` variable is not used, as this port is the one from your -computer's point of view, not a container's point of view in the stack. - -### How to configure the search engine service in the `parameters.yml` file? - -The parameters should be set as the following: - -```yaml -parameters: - search_engine_name: elastic_search - search_engine_host: elasticsearch - search_engine_port: null - search_engine_index_prefix: oro_search - search_engine_username: null - search_engine_password: null - search_engine_ssl_verification: null - search_engine_ssl_cert: null - search_engine_ssl_cert_password: null - search_engine_ssl_key: null - search_engine_ssl_key_password: null - website_search_engine_index_prefix: oro_website_search -``` - -Notice that the `ELASTICSEARCH_PORT` variable is not used, as this port is the one from your -computer's point of view, not a container's point of view in the stack. - -### How to configure the message queue service in the `parameters.yml` file? - -The parameters should be set as the following: - -```yaml -parameters: - message_queue_transport: amqp - message_queue_transport_config: - host: amqp - port: '5672' - user: '%env(RABBITMQ_USER)%' - password: '%env(RABBITMQ_PASSWORD)%' - vhost: / -``` - -Notice that the `ELASTICSEARCH_PORT` variable is not used, as this port is the one from your -computer's point of view, not a container's point of view in the stack. - -### How to enable ElasticStack logging - -To integrate ElasticStack in your monolog config, you will need to change your `config/config_dev.yml` file, as such: - -```yaml -services: - monolog.formatters.logstash: - class: Monolog\Formatter\LogstashFormatter - arguments: - $applicationName: 'your application' -monolog: - handlers: - logstash: - type: socket - connection_string: 'tcp://logstash:5044' - level: debug - formatter: monolog.formatters.logstash - persistent: true - connection_timeout: 5 -``` - -### How to access to Mailcatcher's interface? - -The Mailcatcher interface can be accessed through the port defined in the `MAILCATCHER_PORT` -environment variable value. - -### How to access RabbitMQ manager's interface? - -The RabbitMQ manager interface can be accessed through the port defined in the `RABBITMQ_PORT` -environment variable value. - -### How to access Dejavu's interface for Elasticsearch? - -The Dejavu interface can be accessed through the port defined in the `DEJAVU_PORT` -environment variable value. - -Additionnally, the `ELASTICSEARCH_PORT` variable should be defined in order to make -Elasticsearch's API accessible from your computer. - -### How to access Elasticsearch's API? - -The Elasticsearch API can be accessed through the port defined in the `ELASTICSEARCH_PORT` -environment variable value. - -### How to access Kibana's interface? - -The Kibana interface can be accessed through the port defined in the `KIBANA_PORT` -environment variable value. - -### How to access Redis service from your computer? - -The Redis servcie can be accessed through the port defined in the `REDIS_PORT` -environment variable value. - -### How to access MySQL or PostgreSQL service from your computer? - -The MySQL or PostgreSQL servcie can be accessed through the port defined in the `DATABASE_PORT` -environment variable value. - -Docker for Mac optimizations ---- - -Regarding Mac installations, we have made some optimizations by mounting the following directories in the stack: -* `/var/www/html/var/cache` -* `/var/www/html/public/bundles` -* `/opt/docker/.composer/` - -Those are directories that needs a fast I/O access in order to make the application work fast on Macintosh. - -### Benchmarking - -We are using image `kiboko/php:7.4-cli-orocommerce-ee-4.1-postgresql` in this benchmark, starting with the following declaration: - -```yaml -version: '2.2' -services: - sh: - image: 'kiboko/php:7.4-cli-orocommerce-ee-4.1-postgresql' - user: 'docker:docker' - environment: - - COMPOSER_AUTH - - COMPOSER_PROCESS_TIMEOUT - volumes: - - '${HOME}/.ssh:/opt/docker/.ssh/' - - './:/var/www/html' - command: - - sleep - - '31536000' - restart: on-failure -``` - -> ⚠️ Nota: All the following tests were made with a Macbook Pro (15 inch, 2019) with 2,6 GHz Intel Core i7 and 32 Go 2400 MHz DDR4. - -We run a command on the host system to measure the raw performances of the filesystem: - -```bash -$ time dd if=/dev/zero of=test.dat bs=1024 count=100000 -100000+0 records in -100000+0 records out -102400000 bytes transferred in 0.339715 secs (301429136 bytes/sec) - -real 0m0.362s -user 0m0.049s -sys 0m0.300s -``` - -Then, we connect to the container and stress the filesystem inside a standard container: - -```bash -$ docker-compose run --rm sh /bin/sh -/var/www/html $ time dd if=/dev/zero of=test.dat bs=1024 count=100000 -100000+0 records in -100000+0 records out -real 0m 25.41s -user 0m 0.20s -sys 0m 3.64s -``` - -This is our initial performances of a stack without any optimizations. The conainer is more than 70 times slower than the host. This is not acceptable, we will obviously need a better speed to be able to work with this stack. - -We will do some changes in the directories that are frequently stressed, by using a `tmpfs` mount: - -```yaml -services: - sh: - volumes: - # ... - - 'cache:/var/www/html/var/cache' - - 'assets:/var/www/html/public/bundles' - - 'composer:/opt/docker/.composer/' -volumes: - composer: - driver: local - driver_opts: - type: tmpfs - device: tmpfs - o: 'size=2048m,uid=1000,gid=1000' - assets: - driver: local - driver_opts: - type: tmpfs - device: tmpfs - o: 'size=2048m,uid=1000,gid=1000' - cache: - driver: local - driver_opts: - type: tmpfs - device: tmpfs - o: 'size=2048m,uid=1000,gid=1000' -``` - - -```bash -$ docker-compose run --rm sh /bin/sh -/var/www/html $ cd var/cache/ -/var/www/html/var/cache $ time dd if=/dev/zero of=test.dat bs=1024 count=100000 -100000+0 records in -100000+0 records out -real 0m 0.20s -user 0m 0.07s -sys 0m 0.13s -``` - -We can now see our cache directory, mounted as a `tmpfs` is way faster than what we used to have, it is even faster than our standard nvme hard drive of the host. - -Supported versions and flavours ---- - -### OroPlatform - -#### Community Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.6 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -#### Enterprise Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.12 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -### OroCRM - -#### Community Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.6 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | -| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -#### Enterprise Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.8 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^1.10 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^1.12 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -### OroCommerce - -#### Community Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -#### Enterprise Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | -| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -### Marello - -#### Community Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.4 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^1.5 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^2.0 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^2.1 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^2.2 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^3.0 | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | - -#### Enterprise Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.2 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^1.3 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | -| ^2.0 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^2.1 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^2.2 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | -| ^3.0 | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | - -### Middleware - -#### Community Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.0 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | - -#### Enterprise Edition - -* ✅ available -* ❌ no support -* 🌅️ discontinued -* ⚠️ experimental - -| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | -| ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| ^1.0 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | +* [Installation](docs/installation.md) +* [Usage](docs/usage.md) +* [Frequently Asked Questions](docs/faq.md) +* [Docker for Mac optimizations](docs/docker-for-mac-optimizations.md) +* [Versions sunsetting policy, experimental and discontinued support](docs/sunsetting-policy.md) +* Supported versions and flavors + * [OroPlatform](docs/application/oroplatform.md) + * [OroCRM](docs/application/orocrm.md) + * [OroCommerce](docs/application/orocommerce.md) + * [Marello](docs/application/marello.md) + * [Middleware](docs/application/middleware.md) diff --git a/config/builds.php b/config/builds.php index c87af20..6004678 100644 --- a/config/builds.php +++ b/config/builds.php @@ -85,9 +85,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('native/php@%php.version%/%php.flavor%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), $withExperimental ); @@ -140,9 +138,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('%package.variation%/php/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), $withExperimental ); @@ -201,9 +197,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('oroplatform/%package.edition%/%package.version%/php@%php.version%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroPlatformCommunityEditionRepository(), $withExperimental @@ -263,9 +257,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('oroplatform/%package.edition%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroPlatformEnterpriseEditionRepository(), $withExperimental @@ -325,9 +317,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('orocommerce/%package.edition%/%package.version%/php@%php.version%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroCommerceCommunityEditionRepository(), $withExperimental @@ -387,9 +377,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('orocommerce/%package.edition%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroCommerceEnterpriseEditionRepository(), $withExperimental @@ -449,9 +437,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('orocrm/%package.edition%/%package.version%/php@%php.version%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroCRMCommunityEditionRepository(), $withExperimental @@ -511,9 +497,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('orocrm/%package.edition%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\OroCRMEnterpriseEditionRepository(), $withExperimental @@ -563,9 +547,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('marello/%package.edition%/%package.version%/php@%php.version%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\MarelloCommunityEditionRepository(), $withExperimental @@ -615,9 +597,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('marello/%package.edition%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\MarelloEnterpriseEditionRepository(), $withExperimental @@ -637,9 +617,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('middleware/%package.edition%/%package.version%/php@%php.version%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\MiddlewareCommunityEditionRepository(), $withExperimental @@ -659,9 +637,7 @@ $phpRepository, '8.0', new Packaging\Placeholder('middleware/%package.edition%/'), - $withExperimental ? - new Packaging\Native\PHP\Flavor\StandardFlavorRepository() : - new Packaging\Native\PHP\Flavor\ExperimentalFlavorRepository(), + new Packaging\Native\PHP\Flavor\StandardFlavorRepository(), new Packaging\Native\PHP\Variation\StandardVariationRepository(), new Packaging\Platform\Edition\MiddlewareEnterpriseEditionRepository(), $withExperimental diff --git a/docs/application/marello.md b/docs/application/marello.md new file mode 100644 index 0000000..5643c5f --- /dev/null +++ b/docs/application/marello.md @@ -0,0 +1,41 @@ +Docker stack for Marello +=== + +This page lists the supported versions of the stacks depending +on the different versions and editions. Please report to our +[versions sunsetting policy, experimental and discontinued support](sunsetting-policy.md) +if you need mor details on why some versions are not supported. + +Community Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.4 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^1.5 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^2.0 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^2.1 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^2.2 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^3.0 | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | + +Enterprise Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.2 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^1.3 | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^2.0 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^2.1 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^2.2 | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^3.0 | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | diff --git a/docs/application/middleware.md b/docs/application/middleware.md new file mode 100644 index 0000000..c007039 --- /dev/null +++ b/docs/application/middleware.md @@ -0,0 +1,31 @@ +Docker stack for Middleware +=== + +This page lists the supported versions of the stacks depending +on the different versions and editions. Please report to our +[versions sunsetting policy, experimental and discontinued support](sunsetting-policy.md) +if you need mor details on why some versions are not supported. + +Community Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.0 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | + +Enterprise Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.0 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | diff --git a/docs/application/orocommerce.md b/docs/application/orocommerce.md new file mode 100644 index 0000000..d269a29 --- /dev/null +++ b/docs/application/orocommerce.md @@ -0,0 +1,37 @@ +Docker Stack for OroCommerce +=== + +This page lists the supported versions of the stacks depending +on the different versions and editions. Please report to our +[versions sunsetting policy, experimental and discontinued support](sunsetting-policy.md) +if you need mor details on why some versions are not supported. + +Community Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | + +Enterprise Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | diff --git a/docs/application/orocrm.md b/docs/application/orocrm.md new file mode 100644 index 0000000..2bbe330 --- /dev/null +++ b/docs/application/orocrm.md @@ -0,0 +1,43 @@ +Docker Stack for OroCRM +=== + +This page lists the supported versions of the stacks depending +on the different versions and editions. Please report to our +[versions sunsetting policy, experimental and discontinued support](sunsetting-policy.md) +if you need mor details on why some versions are not supported. + +Community Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.6 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | + +Enterprise Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.12 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | diff --git a/docs/application/oroplatform.md b/docs/application/oroplatform.md new file mode 100644 index 0000000..b8beabe --- /dev/null +++ b/docs/application/oroplatform.md @@ -0,0 +1,43 @@ +Docker Stack for OroPlatform +=== + +This page lists the supported versions of the stacks depending +on the different versions and editions. Please report to our +[versions sunsetting policy, experimental and discontinued support](sunsetting-policy.md) +if you need mor details on why some versions are not supported. + +Community Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.6 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | + +Enterprise Edition +--- + +* ✅ available +* ❌ no support +* 🌅️ discontinued +* ⚠️ experimental + +| Version | PHP 5.6 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | +| ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| ^1.8 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.10 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^1.12 | 🌅️ | ❌ | ❌ | ❌ | ❌️ | ❌ | +| ^2.6 | 🌅️ | 🌅️ | ❌ | ❌ | ❌️ | ❌ | +| ^3.1 | ❌ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | +| ^4.1 | ❌ | ❌ | ❌ | ✅️ | ✅️ | ⚠️ | +| ^4.2 | ❌ | ❌ | ❌ | ❌️ | ✅️ | ⚠️ | diff --git a/docs/docker-for-mac-optimizations.md b/docs/docker-for-mac-optimizations.md new file mode 100644 index 0000000..7ef0820 --- /dev/null +++ b/docs/docker-for-mac-optimizations.md @@ -0,0 +1,108 @@ +Docker for Mac optimizations +=== + +Regarding Mac installations, we have made some optimizations by mounting the following directories in the stack: +* `/var/www/html/var/cache` +* `/var/www/html/public/bundles` +* `/opt/docker/.composer/` + +Those are directories that needs a fast I/O access in order to make the application work fast on Macintosh. + +Benchmarking +--- + +We are using image `kiboko/php:7.4-cli-orocommerce-ee-4.1-postgresql` in this benchmark, starting with the following declaration: + +```yaml +version: '2.2' +services: + sh: + image: 'kiboko/php:7.4-cli-orocommerce-ee-4.1-postgresql' + user: 'docker:docker' + environment: + - COMPOSER_AUTH + - COMPOSER_PROCESS_TIMEOUT + volumes: + - '${HOME}/.ssh:/opt/docker/.ssh/' + - './:/var/www/html' + command: + - sleep + - '31536000' + restart: on-failure +``` + +> ⚠️ Nota: All the following tests were made with a Macbook Pro (15 inch, 2019) with 2,6 GHz Intel Core i7 and 32 Go 2400 MHz DDR4. + +We run a command on the host system to measure the raw performances of the filesystem: + +```bash +$ time dd if=/dev/zero of=test.dat bs=1024 count=100000 +100000+0 records in +100000+0 records out +102400000 bytes transferred in 0.339715 secs (301429136 bytes/sec) + +real 0m0.362s +user 0m0.049s +sys 0m0.300s +``` + +Then, we connect to the container and stress the filesystem inside a standard container: + +```bash +$ docker-compose run --rm sh /bin/sh +/var/www/html $ time dd if=/dev/zero of=test.dat bs=1024 count=100000 +100000+0 records in +100000+0 records out +real 0m 25.41s +user 0m 0.20s +sys 0m 3.64s +``` + +This is our initial performances of a stack without any optimizations. The conainer is more than 70 times slower than the host. This is not acceptable, we will obviously need a better speed to be able to work with this stack. + +We will do some changes in the directories that are frequently stressed, by using a `tmpfs` mount: + +```yaml +services: + sh: + volumes: + # ... + - 'cache:/var/www/html/var/cache' + - 'assets:/var/www/html/public/bundles' + - 'composer:/opt/docker/.composer/' +volumes: + composer: + driver: local + driver_opts: + type: tmpfs + device: tmpfs + o: 'size=2048m,uid=1000,gid=1000' + assets: + driver: local + driver_opts: + type: tmpfs + device: tmpfs + o: 'size=2048m,uid=1000,gid=1000' + cache: + driver: local + driver_opts: + type: tmpfs + device: tmpfs + o: 'size=2048m,uid=1000,gid=1000' +``` + + +```bash +$ docker-compose run --rm sh /bin/sh +/var/www/html $ cd var/cache/ +/var/www/html/var/cache $ time dd if=/dev/zero of=test.dat bs=1024 count=100000 +100000+0 records in +100000+0 records out +real 0m 0.20s +user 0m 0.07s +sys 0m 0.13s +``` + +We can now see our cache directory, mounted as a `tmpfs` is way faster +than what we used to have, it is even faster than our standard nvme +hard drive of the host. diff --git a/docs/faq.md b/docs/faq.md new file mode 100644 index 0000000..7c57d2c --- /dev/null +++ b/docs/faq.md @@ -0,0 +1,233 @@ +Frequently Asked Questions +=== + +I am having some warnings while launching `docker-compose up` for the first time +--- + +If you are having this sort of messages: + +``` +WARNING: The MAILCATCHER_PORT variable is not set. Defaulting to a blank string. +ERROR: The Compose file './docker-compose.yml' is invalid because: +services.mail.ports contains an invalid type, it should be a number, or an object +``` + +Those warnings and errors are due to missing environment variables, probably because you did +not copy the `.env.dist` file to a `.env` file, or you juste made a `stack:upgrade` and some +new environment variables are required. + +What is the use of the `I_AM_DEVELOPER_DISABLE_INDEX_IP_CHECK` environment variable? +--- + +This environment variable is used to disable the IP check in the `public/index_dev.php` file. +To benefit from this feature, you will need to apply the following patch: + +```patch +Index: public/index_dev.php +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +--- public/index_dev.php ++++ public/index_dev.php +@@ -13,9 +13,12 @@ + + // This check prevents access to debug front controllers that are deployed by accident to production servers. + // Feel free to remove this, extend it, or make something more sophisticated. +-if (isset($_SERVER['HTTP_CLIENT_IP']) +- || isset($_SERVER['HTTP_X_FORWARDED_FOR']) +- || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) ++if (!isset($_ENV['I_AM_DEVELOPER_DISABLE_INDEX_IP_CHECK']) ++ && ( ++ isset($_SERVER['HTTP_CLIENT_IP']) ++ || isset($_SERVER['HTTP_X_FORWARDED_FOR']) ++ || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) ++ ) + ) { + header('HTTP/1.0 403 Forbidden'); + exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); +``` + +How to access My application's frontend? +--- + +The application frontend can be accessed through the port defined in the `HTTP_PORT` +environment variable value. + +How to switch between dev/prod/xdebug environments? (experimental) +--- + +We have built a [Firefox/Chrome plugin](https://github.com/kiboko-labs/kiboko-symfony-env) to help you switch between environments. + +This extension is currently experimental and is limited to [a few domain names](https://github.com/kiboko-labs/kiboko-symfony-env#supported-domains). It may fit your needs as is, but be aware that you may need to manually package the extension if you need other domain names. + +![Capture of the plugin in action](https://github.com/kiboko-labs/kiboko-symfony-env/raw/master/screenshot.png) + +How to configure the mailer in the `parameters.yml` file? +--- + +The parameters should be set as the following: + +```yaml +parameters: + mailer_transport: smtp + mailer_host: mail + mailer_port: 1025 + mailer_encryption: null + mailer_user: null + mailer_password: null +``` + +Notice that the `MAILER_PORT` variable is not used, as this port is the one from your +computer's point of view, not a container's point of view in the stack. + +How to configure the websocket service in the `parameters.yml` file? +--- + +The parameters should be set as the following on Oro 4.1+: + +```yaml +parameters: + websocket_bind_address: 0.0.0.0 + websocket_bind_port: 8080 + websocket_frontend_host: '*' + websocket_frontend_port: '%env(WEBSOCKET_PORT)%' + websocket_frontend_path: '' + websocket_backend_host: '*' + websocket_backend_port: '%env(WEBSOCKET_PORT)%' + websocket_backend_path: '' + websocket_backend_transport: tcp + websocket_backend_ssl_context_options: { } +``` + +Notice that the `WEBSOCKET_PORT` variable is not used for the `websocket_bind_port`, as this +port is the one from your computer's point of view, not a container's point of view in the stack. + +How to configure the database service in the `parameters.yml` file? +--- + +The parameters should be set as the following on Oro 4.1+: + +```yaml +parameters: + database_driver: pdo_pgsql + database_host: sql + database_port: null + database_name: '%env(DATABASE_NAME)%' + database_user: '%env(DATABASE_USER)%' + database_password: '%env(DATABASE_PASS)%' + database_driver_options: { } +``` + +Notice that the `DATABASE_PORT` variable is not used, as this port is the one from your +computer's point of view, not a container's point of view in the stack. + +How to configure the search engine service in the `parameters.yml` file? +--- + +The parameters should be set as the following: + +```yaml +parameters: + search_engine_name: elastic_search + search_engine_host: elasticsearch + search_engine_port: null + search_engine_index_prefix: oro_search + search_engine_username: null + search_engine_password: null + search_engine_ssl_verification: null + search_engine_ssl_cert: null + search_engine_ssl_cert_password: null + search_engine_ssl_key: null + search_engine_ssl_key_password: null + website_search_engine_index_prefix: oro_website_search +``` + +Notice that the `ELASTICSEARCH_PORT` variable is not used, as this port is the one from your +computer's point of view, not a container's point of view in the stack. + +How to configure the message queue service in the `parameters.yml` file? +--- + +The parameters should be set as the following: + +```yaml +parameters: + message_queue_transport: amqp + message_queue_transport_config: + host: amqp + port: '5672' + user: '%env(RABBITMQ_USER)%' + password: '%env(RABBITMQ_PASSWORD)%' + vhost: / +``` + +Notice that the `ELASTICSEARCH_PORT` variable is not used, as this port is the one from your +computer's point of view, not a container's point of view in the stack. + +How to enable ElasticStack logging +--- + +To integrate ElasticStack in your monolog config, you will need to change your `config/config_dev.yml` file, as such: + +```yaml +services: + monolog.formatters.logstash: + class: Monolog\Formatter\LogstashFormatter + arguments: + $applicationName: 'your application' +monolog: + handlers: + logstash: + type: socket + connection_string: 'tcp://logstash:5044' + level: debug + formatter: monolog.formatters.logstash + persistent: true + connection_timeout: 5 +``` + +How to access to Mailcatcher's interface? +--- + +The Mailcatcher interface can be accessed through the port defined in the `MAILCATCHER_PORT` +environment variable value. + +How to access RabbitMQ manager's interface? +--- + +The RabbitMQ manager interface can be accessed through the port defined in the `RABBITMQ_PORT` +environment variable value. + +How to access Dejavu's interface for Elasticsearch? +--- + +The Dejavu interface can be accessed through the port defined in the `DEJAVU_PORT` +environment variable value. + +Additionnally, the `ELASTICSEARCH_PORT` variable should be defined in order to make +Elasticsearch's API accessible from your computer. + +How to access Elasticsearch's API? +--- + +The Elasticsearch API can be accessed through the port defined in the `ELASTICSEARCH_PORT` +environment variable value. + +How to access Kibana's interface? +--- + +The Kibana interface can be accessed through the port defined in the `KIBANA_PORT` +environment variable value. + +How to access Redis service from your computer? +--- + +The Redis servcie can be accessed through the port defined in the `REDIS_PORT` +environment variable value. + +How to access MySQL or PostgreSQL service from your computer? +--- + +The MySQL or PostgreSQL servcie can be accessed through the port defined in the `DATABASE_PORT` +environment variable value. diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index b7f18bb..0000000 --- a/docs/index.md +++ /dev/null @@ -1,14 +0,0 @@ -Docker for OroPlatform -=== - -This documentation is here to help you build your Docker stack for -OroPlatform development, using pre-built images, specialised for your -development needs. - -Build your services ---- - -* [OroPlatform](oroplatform.md) -* OroCRM -* OroCommerce -* Marello \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..632c99f --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,38 @@ +Installation +=== + +Installing system-wide the `kloud` command +--- + +While installing system-wide, you will need administrator privilleges to install the command inside `/usr/local/bin/` directory. + +``` +sudo curl -L -o /usr/local/bin/kloud https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar +sudo curl -L -o /usr/local/bin/kloud.pubkey https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar.pubkey +sudo chmod +x /usr/local/bin/kloud +``` + +Installing the Phar package in your project +--- + +While installing in your project, no administrator privilege is required, the phar package will be available in the `bin/` directory. + +``` +curl -L -o bin/kloud.phar https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar +curl -L -o bin/kloud.phar.pubkey https://github.com/kiboko-labs/docker-images/releases/latest/download/kloud.phar.pubkey +chmod +x bin/kloud.phar +``` + +We also recommend to add both files to your `.gitignore` file. + +If you want to use the pre-packaged docker image +--- + +If you do not want to install the command on your machine, a Docker image is ready for one-shot usages and can be executed this way: + +``` +docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock \ + -v $HOME/.docker:/opt/docker/.docker \ + -v $PWD:/app \ + kiboko/kloud +``` diff --git a/docs/oroplatform.md b/docs/oroplatform.md deleted file mode 100644 index c40d83d..0000000 --- a/docs/oroplatform.md +++ /dev/null @@ -1,20 +0,0 @@ -Docker Stack for OroPlatform -=== - -Image tags ---- - -* Community Edition - * Version 3.1 -* Enterprise Edition - * Version 1.6 - * Version 3.1 - * Version 4.1 -* [Docker Compose file example](#docker-compose-file-example) - -Docker Compose file examples ---- - -### Create a CLI service - - \ No newline at end of file diff --git a/docs/sunsetting-policy.md b/docs/sunsetting-policy.md new file mode 100644 index 0000000..a5e2ee7 --- /dev/null +++ b/docs/sunsetting-policy.md @@ -0,0 +1,48 @@ +Versions sunsetting policy, experimental and discontinued support +=== + +Supported, Experimental and Discontinued images +--- + +This tool makes you able to build thousands of images combinations for +5 applications with 2 editions each, for now 6 PHP versions, having each 6 +flavors. + +This lot of combinations makes the image building process very time-consuming +and requires us to focus on the most used combinations. Thereof we will mark +in the following chapter the status of the support of the images. + +* **✅ available**: This image is fully supported and automatically built by the + CI before being pushed to Docker Hub +* **❌ no support**: The `kloud image:build` command will not make you able to + build this combination, probably because the application + version is not compatible with the PHP matching version. +* **🌅️ discontinued**: This version can be built by the `kloud image:build` + command, but it is not maintained anymore and not + automatically built and pushed to Docker Hub. You will + need to build this image yourself on your environments. +* **⚠️ experimental**: This version can be built by the `kloud image:build` + command, but it is not officially supportted by the + application. Use at your own risk. You will be required + to add option `--with-experimental` in order to activate + this version combination + +Versions Sunsetting Policy +--- + +In order to maintain only the most used versions combinations, we wil ensure the +images automatic building will be supported for a 24 months after the initial +release. + +Therefore, the following policy will be applied on all images builds: + +| Applications | Version | End of builds support | +| -------------------------------- | ------- | --------------------- | +| OroCommerce, OroCRM, OroPlatform | 3.1 | Feb 2022 | +| OroCommerce, OroCRM, OroPlatform | 4.1 | Jan 2023 | +| OroCommerce, OroCRM, OroPlatform | 4.2 | Jan 2024 | +| Marello | 2.0 | Feb 2022 | +| Marello | 2.1 | Jul 2022 | +| Marello | 2.2 | Oct 2022 | +| Marello | 3.0 | Feb 2023 | +| Middleware | 1.0 | To be defined | diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 0000000..1d9b17f --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,65 @@ +Usage +=== + +Initialize your stack +--- + +In a new project, after cloning the original application repository, you can initialize the Docker stack configuration you will need. +You can invoke the following command that will guess what you need and a wizard will ask you a few questions about your preferences: + +`kloud stack:init` + +Once the command is finished, you will have a file named `.env.dist` containing the required environment variables for the stack. +This file has to be renamed to `.env` in order to be used by Docker Compose. +The command have set some ports values for all services, you may wish to change them depending on your environment. + +#Available command line options +--- + +* Database engine selection + * `--mysql`: Set up the application to use MySQL. + * `--postgresql`: Set up the application to use PostgreSQL. + +* Xdebug a debugger for PHP + * `--with-xdebug`: Set up the application to use Xdebug. + * `--without-xdebug`: Set up the application without Xdebug. + +* Blackfire an APM for PHP performance optimizations + * `--with-blackfire`: Set up the application to use Blackfire. + * `--without-blackfire`: Set up the application without Blackfire. + +* Dejavu, An ElasticSearch UI + * `--with-dejavu`: Set up the application to use Dejavu UI. + * `--without-dejavu`: Set up the application without Dejavu UI. + +* Elastic Stack for application logging + * `--with-elastic-stack`: Set up the application to use Elastic Stack logging. + * `--without-elastic-stack`: Set up the application without Elastic Stack logging. + +* Mac OS optimizations on data volumes + * `--with-macos-optimizations`: Set up the application to use Docker for Mac optimizations. + * `--without-macos-optimizations`: Set up the application without Docker for Mac optimizations. + +Update your stack +--- + +In an existing project, you can upgrade the docker stack configuration. automagically. +You can invoke the following command that will guess what services needs to be updated and in case of differences, a wizard will ask you what you wish to keep or delete: + +`kloud stack:update` + +Build the required images +--- + +If you need to build the images you need in a stack, you can execute the following command: + +`kloud image:build` + +To enable experimental images, you will need to add option `--with-experimental`. + +Test the required images +--- + +If you need to test if the images you are using are following every constraint you would expect: + +`kloud image:test` diff --git a/environments/marello/ee/Dockerfile b/environments/marello/ee/Dockerfile index 6fe4c0b..f4b0617 100644 --- a/environments/marello/ee/Dockerfile +++ b/environments/marello/ee/Dockerfile @@ -3,3 +3,28 @@ ARG SOURCE_VARIATION FROM kiboko/php:${SOURCE_VARIATION} LABEL maintainer="Grégory Planchat " + +RUN set -ex\ + && apk add --virtual .build-deps \ + autoconf \ + bash \ + binutils \ + expat \ + file \ + g++ \ + gcc \ + m4 \ + make \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + zlib-dev \ + krb5-dev \ + imap-dev \ + openssl-dev \ + && apk add --update \ + c-client \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ + && docker-php-ext-install imap \ + && apk del .build-deps \ + && rm -rf /tmp/* /var/cache/apk/* diff --git a/environments/middleware/ee/Dockerfile b/environments/middleware/ee/Dockerfile index 09a9fe6..a5a5f79 100644 --- a/environments/middleware/ee/Dockerfile +++ b/environments/middleware/ee/Dockerfile @@ -15,10 +15,20 @@ RUN set -ex\ gcc \ m4 \ make \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + zlib-dev \ + krb5-dev \ + imap-dev \ + openssl-dev \ librdkafka-dev \ git \ - && apk add \ + && apk add --update \ + c-client \ librdkafka \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ + && docker-php-ext-install imap \ && ( \ git clone https://github.com/arnaud-lb/php-rdkafka.git \ && cd php-rdkafka \ diff --git a/environments/native/php@5.6/cli/Dockerfile b/environments/native/php@5.6/cli/Dockerfile index 05a3de9..5cf82f8 100644 --- a/environments/native/php@5.6/cli/Dockerfile +++ b/environments/native/php@5.6/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/native/php@7.1/cli/Dockerfile b/environments/native/php@7.1/cli/Dockerfile index 4976b7b..fb95a8b 100644 --- a/environments/native/php@7.1/cli/Dockerfile +++ b/environments/native/php@7.1/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/native/php@7.2/cli/Dockerfile b/environments/native/php@7.2/cli/Dockerfile index 960a47a..0afcf8b 100644 --- a/environments/native/php@7.2/cli/Dockerfile +++ b/environments/native/php@7.2/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/native/php@7.3/cli/Dockerfile b/environments/native/php@7.3/cli/Dockerfile index db6d4b0..f381975 100644 --- a/environments/native/php@7.3/cli/Dockerfile +++ b/environments/native/php@7.3/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/native/php@7.4/cli/Dockerfile b/environments/native/php@7.4/cli/Dockerfile index 3f9c723..618be0c 100644 --- a/environments/native/php@7.4/cli/Dockerfile +++ b/environments/native/php@7.4/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/native/php@8.0/cli/Dockerfile b/environments/native/php@8.0/cli/Dockerfile index 0b4863a..1a34d4f 100644 --- a/environments/native/php@8.0/cli/Dockerfile +++ b/environments/native/php@8.0/cli/Dockerfile @@ -55,7 +55,7 @@ RUN set -ex \ && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" \ && if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then >&2 echo 'ERROR: Invalid installer signature'; rm composer-setup.php; exit 1; fi \ - && php composer-setup.php --install-dir /usr/local/bin --filename composer \ + && php composer-setup.php --install-dir /usr/local/bin --filename composer --version=1.10.16 \ && php -r "unlink('composer-setup.php');" \ && mkdir -p /opt/${APP_USERNAME}/.npm \ && mkdir -p /opt/${APP_USERNAME}/.composer \ diff --git a/environments/orocommerce/ee/Dockerfile b/environments/orocommerce/ee/Dockerfile index 6fe4c0b..f4b0617 100644 --- a/environments/orocommerce/ee/Dockerfile +++ b/environments/orocommerce/ee/Dockerfile @@ -3,3 +3,28 @@ ARG SOURCE_VARIATION FROM kiboko/php:${SOURCE_VARIATION} LABEL maintainer="Grégory Planchat " + +RUN set -ex\ + && apk add --virtual .build-deps \ + autoconf \ + bash \ + binutils \ + expat \ + file \ + g++ \ + gcc \ + m4 \ + make \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + zlib-dev \ + krb5-dev \ + imap-dev \ + openssl-dev \ + && apk add --update \ + c-client \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ + && docker-php-ext-install imap \ + && apk del .build-deps \ + && rm -rf /tmp/* /var/cache/apk/* diff --git a/environments/orocrm/ee/Dockerfile b/environments/orocrm/ee/Dockerfile index 6fe4c0b..f4b0617 100644 --- a/environments/orocrm/ee/Dockerfile +++ b/environments/orocrm/ee/Dockerfile @@ -3,3 +3,28 @@ ARG SOURCE_VARIATION FROM kiboko/php:${SOURCE_VARIATION} LABEL maintainer="Grégory Planchat " + +RUN set -ex\ + && apk add --virtual .build-deps \ + autoconf \ + bash \ + binutils \ + expat \ + file \ + g++ \ + gcc \ + m4 \ + make \ + libpng-dev \ + libjpeg-turbo-dev \ + freetype-dev \ + zlib-dev \ + krb5-dev \ + imap-dev \ + openssl-dev \ + && apk add --update \ + c-client \ + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl \ + && docker-php-ext-install imap \ + && apk del .build-deps \ + && rm -rf /tmp/* /var/cache/apk/* diff --git a/src/Domain/Packaging/Native/PHP/Tag.php b/src/Domain/Packaging/Native/PHP/Tag.php index 2df904a..dd6292a 100644 --- a/src/Domain/Packaging/Native/PHP/Tag.php +++ b/src/Domain/Packaging/Native/PHP/Tag.php @@ -16,4 +16,4 @@ public function __construct( $this->name = new Packaging\Placeholder('%php.version%-%php.flavor%', $context->getArrayCopy()); $this->context = $context; } -} \ No newline at end of file +} diff --git a/src/Domain/Packaging/Native/PHP/TagVariation.php b/src/Domain/Packaging/Native/PHP/TagVariation.php index bda603b..4ebbea6 100644 --- a/src/Domain/Packaging/Native/PHP/TagVariation.php +++ b/src/Domain/Packaging/Native/PHP/TagVariation.php @@ -6,8 +6,7 @@ final class TagVariation implements Packaging\Tag\TagBuildInterface, Packaging\Tag\DependentTagInterface { - use Packaging\Tag\TagTrait; - private Packaging\Tag\TagInterface $from; + use Packaging\Tag\TagVariationTrait; public function __construct( Packaging\RepositoryInterface $repository, @@ -19,9 +18,4 @@ public function __construct( $this->context = $context; $this->from = $from; } - - public function getParent(): Packaging\Tag\TagInterface - { - return $this->from; - } -} \ No newline at end of file +} diff --git a/src/Domain/Packaging/Platform/Edition/MarelloEnterpriseEditionRepository.php b/src/Domain/Packaging/Platform/Edition/MarelloEnterpriseEditionRepository.php index 450a92e..7282be5 100644 --- a/src/Domain/Packaging/Platform/Edition/MarelloEnterpriseEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/MarelloEnterpriseEditionRepository.php @@ -11,9 +11,9 @@ public function getIterator() '1.2', 'ee', new Edition( - 'oroplatform', - '2.6', - 'ee', + 'marello', + '1.4', + 'ce', '>=7.1 <7.2' ) ); @@ -23,9 +23,9 @@ public function getIterator() '1.3', 'ee', new Edition( - 'oroplatform', - '2.6', - 'ee', + 'marello', + '1.5', + 'ce', '>=7.1 <7.2' ) ); @@ -35,9 +35,9 @@ public function getIterator() '2.0', 'ee', new Edition( - 'oroplatform', - '3.1', - 'ee', + 'marello', + '2.0', + 'ce', '>=7.1 <7.3', '>=7.1 <=8.0' ) @@ -48,9 +48,9 @@ public function getIterator() '2.1', 'ee', new Edition( - 'oroplatform', - '3.1', - 'ee', + 'marello', + '2.1', + 'ce', '>=7.1 <7.3', '>=7.1 <=8.0' ) @@ -61,9 +61,9 @@ public function getIterator() '2.2', 'ee', new Edition( - 'oroplatform', - '3.1', - 'ee', + 'marello', + '2.2', + 'ce', '>=7.1 <7.3', '>=7.1 <=8.0' ) @@ -74,9 +74,9 @@ public function getIterator() '3.0', 'ee', new Edition( - 'oroplatform', - '4.1', - 'ee', + 'marello', + '3.0', + 'ce', '>=7.3 <8.0', '>=7.3 <=8.0' ) diff --git a/src/Domain/Packaging/Platform/Edition/MiddlewareEnterpriseEditionRepository.php b/src/Domain/Packaging/Platform/Edition/MiddlewareEnterpriseEditionRepository.php index 100e30c..7ea7d60 100644 --- a/src/Domain/Packaging/Platform/Edition/MiddlewareEnterpriseEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/MiddlewareEnterpriseEditionRepository.php @@ -11,12 +11,12 @@ public function getIterator() '1.0', 'ee', new Edition( - 'oroplatform', - '4.1', - 'ee', + 'middleware', + '1.0', + 'ce', '>=7.4 <8.0', '>=7.4 <=8.0' ) ); } -} \ No newline at end of file +} diff --git a/src/Domain/Packaging/Platform/Edition/OroCRMCommunityEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroCRMCommunityEditionRepository.php index 11ee107..de80e74 100644 --- a/src/Domain/Packaging/Platform/Edition/OroCRMCommunityEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroCRMCommunityEditionRepository.php @@ -36,7 +36,7 @@ public function getIterator() 'ce', new Edition( 'oroplatform', - '1.8', + '1.10', 'ce', '>=5.4 <7.0' ) @@ -88,8 +88,8 @@ public function getIterator() 'oroplatform', '4.2', 'ce', - '>=7.3 <8.0', - '>=7.3 <=8.0', + '>=7.4 <8.0', + '>=7.4 <=8.0', ) ); } diff --git a/src/Domain/Packaging/Platform/Edition/OroCRMEnterpriseEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroCRMEnterpriseEditionRepository.php index ec75a1a..8c67b2b 100644 --- a/src/Domain/Packaging/Platform/Edition/OroCRMEnterpriseEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroCRMEnterpriseEditionRepository.php @@ -35,9 +35,9 @@ public function getIterator() '1.12', 'ee', new Edition( - 'oroplatform', - '1.12', - 'ee', + 'orocrm', + '1.10', + 'ce', '>=5.5 <7.0' ) ); @@ -47,9 +47,9 @@ public function getIterator() '2.6', 'ee', new Edition( - 'oroplatform', + 'orocrm', '2.6', - 'ee', + 'ce', '>=5.6 <7.2' ) ); @@ -59,9 +59,9 @@ public function getIterator() '3.1', 'ee', new Edition( - 'oroplatform', + 'orocrm', '3.1', - 'ee', + 'ce', '>=7.1 <7.3', '>=7.1 <=8.0', ) @@ -72,9 +72,9 @@ public function getIterator() '4.1', 'ee', new Edition( - 'oroplatform', + 'orocrm', '4.1', - 'ee', + 'ce', '>=7.3 <8.0', '>=7.3 <=8.0', ) @@ -85,11 +85,11 @@ public function getIterator() '4.2', 'ee', new Edition( - 'oroplatform', + 'orocrm', '4.2', - 'ee', - '>=7.3 <8.0', - '>=7.3 <=8.0', + 'ce', + '>=7.4 <8.0', + '>=7.4 <=8.0', ) ); } diff --git a/src/Domain/Packaging/Platform/Edition/OroCommerceCommunityEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroCommerceCommunityEditionRepository.php index 0081ac9..0321017 100644 --- a/src/Domain/Packaging/Platform/Edition/OroCommerceCommunityEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroCommerceCommunityEditionRepository.php @@ -52,8 +52,8 @@ public function getIterator() 'oroplatform', '4.2', 'ce', - '>=7.3 <8.0', - '>=7.3 <=8.0', + '>=7.4 <8.0', + '>=7.4 <=8.0', ) ); } diff --git a/src/Domain/Packaging/Platform/Edition/OroCommerceEnterpriseEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroCommerceEnterpriseEditionRepository.php index 3c37cf4..eb401e2 100644 --- a/src/Domain/Packaging/Platform/Edition/OroCommerceEnterpriseEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroCommerceEnterpriseEditionRepository.php @@ -52,8 +52,8 @@ public function getIterator() 'orocommerce', '4.2', 'ce', - '>=7.3 <8.0', - '>=7.3 <=8.0', + '>=7.4 <8.0', + '>=7.4 <=8.0', ) ); } diff --git a/src/Domain/Packaging/Platform/Edition/OroPlatformCommunityEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroPlatformCommunityEditionRepository.php index 33891eb..d8abdb4 100644 --- a/src/Domain/Packaging/Platform/Edition/OroPlatformCommunityEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroPlatformCommunityEditionRepository.php @@ -54,8 +54,8 @@ public function getIterator() 'oroplatform', '4.2', 'ce', - '>=7.3 <8.0', - '>=7.3 <=8.0', + '>=7.4 <8.0', + '>=7.4 <=8.0', ); } } diff --git a/src/Domain/Packaging/Platform/Edition/OroPlatformEnterpriseEditionRepository.php b/src/Domain/Packaging/Platform/Edition/OroPlatformEnterpriseEditionRepository.php index 3e98883..b80e710 100644 --- a/src/Domain/Packaging/Platform/Edition/OroPlatformEnterpriseEditionRepository.php +++ b/src/Domain/Packaging/Platform/Edition/OroPlatformEnterpriseEditionRepository.php @@ -76,7 +76,7 @@ public function getIterator() '4.1', 'ce', '>=7.3 <8.0', - '>=7.3 <=8.0' + '>=7.3 <=8.0', ) ); @@ -88,8 +88,8 @@ public function getIterator() 'oroplatform', '4.2', 'ce', - '>=7.3 <8.0', - '>=7.3 <=8.0', + '>=7.4 <8.0', + '>=7.4 <=8.0', ) ); } diff --git a/src/Domain/Packaging/Tag/TagTrait.php b/src/Domain/Packaging/Tag/TagTrait.php index e7fb387..a38210c 100644 --- a/src/Domain/Packaging/Tag/TagTrait.php +++ b/src/Domain/Packaging/Tag/TagTrait.php @@ -52,4 +52,4 @@ public function forceBuild(Packaging\Execution\CommandBus\Task $task): Packaging return $task; } -} \ No newline at end of file +} diff --git a/src/Domain/Packaging/Tag/TagVariationTrait.php b/src/Domain/Packaging/Tag/TagVariationTrait.php new file mode 100644 index 0000000..1af6f72 --- /dev/null +++ b/src/Domain/Packaging/Tag/TagVariationTrait.php @@ -0,0 +1,61 @@ +context; + } + + public function __toString() + { + return (string) $this->name; + } + + public function getRepository(): Packaging\RepositoryInterface + { + return $this->repository; + } + + public function getParent(): Packaging\Tag\TagInterface + { + return $this->from; + } + + public function pull(Packaging\Execution\CommandBus\Task $task): Packaging\Execution\CommandBus\Task + { + $task->then(new Packaging\Execution\Command\Pull($this)); + + return $task; + } + + public function push(Packaging\Execution\CommandBus\Task $task): Packaging\Execution\CommandBus\Task + { + $task->then(new Packaging\Execution\Command\Push($this)); + + return $task; + } + + public function build(Packaging\Execution\CommandBus\Task $task): Packaging\Execution\CommandBus\Task + { + $task->then(new Packaging\Execution\Command\BuildFrom($this, $this->from, $this->context)); + + return $task; + } + + public function forceBuild(Packaging\Execution\CommandBus\Task $task): Packaging\Execution\CommandBus\Task + { + $task->then(new Packaging\Execution\Command\ForceBuildFrom($this, $this->from, $this->context)); + + return $task; + } +} diff --git a/test/Assertion/CommandRunnerHasRunCommands.php b/test/Assertion/CommandRunnerHasRunCommands.php index 7e07b4d..c01b896 100644 --- a/test/Assertion/CommandRunnerHasRunCommands.php +++ b/test/Assertion/CommandRunnerHasRunCommands.php @@ -5,7 +5,7 @@ use PHPUnit\Framework\Constraint\Constraint; use SebastianBergmann\Comparator\ComparisonFailure; use Symfony\Component\Process\Process; -use test\Kiboko\Cloud\ProcessMatcher; +use test\Kiboko\Cloud\CommandExpectation; use test\Kiboko\Cloud\TestCommandRunner; final class CommandRunnerHasRunCommands extends Constraint @@ -17,7 +17,7 @@ public function __construct(TestCommandRunner $commandRunner) $this->commandRunner = $commandRunner; } - private function hasCommand(ProcessMatcher $processPlaceholder): bool + private function hasCommand(CommandExpectation $processPlaceholder): bool { /** @var Process $process */ foreach ($this->commandRunner as $process) { @@ -33,16 +33,21 @@ private function hasCommand(ProcessMatcher $processPlaceholder): bool public function evaluate($other, string $description = '', bool $returnResult = false) { + /** @var CommandExpectation $command */ foreach ($other as $command) { if (!$this->hasCommand($command)) { $this->fail( $other, - 'The desired command was not found in the expected commands list.', + 'The following command was not found in the expected commands list:' . $command, new ComparisonFailure( - $other, + array_map(function (CommandExpectation $command) { + return $this->exporter()->export((string)$command); + }, $other), iterator_to_array($this->commandRunner), - $command, - implode(' ', array_map(function (Process $command) { + implode(PHP_EOL, array_map(function (CommandExpectation $command) { + return $this->exporter()->export((string)$command); + }, $other)), + implode(PHP_EOL, array_map(function (Process $command) { return $this->exporter()->export($command->getCommandLine()); }, iterator_to_array($this->commandRunner))) ) @@ -57,7 +62,7 @@ public function evaluate($other, string $description = '', bool $returnResult = protected function failureDescription($other): string { - return ' the desired executed processes list ' . $this->exporter()->export(array_map(function (ProcessMatcher $command) { + return ' the desired executed processes list ' . $this->exporter()->export(array_map(function (CommandExpectation $command) { return $this->exporter()->export($command->getCommandLine()); }, $other)) . ' matches the actually executed processes list ' diff --git a/test/ProcessMatcher.php b/test/CommandExpectation.php similarity index 83% rename from test/ProcessMatcher.php rename to test/CommandExpectation.php index ef9c53b..1c91739 100644 --- a/test/ProcessMatcher.php +++ b/test/CommandExpectation.php @@ -6,7 +6,7 @@ use test\Kiboko\Cloud\Fixture\FixtureProviderInterface; use test\Kiboko\Cloud\Fixture\PlaceholderInterface; -final class ProcessMatcher +final class CommandExpectation implements \Stringable { private FixtureProviderInterface $context; private array $commandline; @@ -52,4 +52,11 @@ public function match(Process $process): bool return true; } + + public function __toString() + { + return implode(' ', array_map(function ($item) { + return $item instanceof PlaceholderInterface ? $item->toString($this->context, $this->phpVersion, $this->applicationVersion) : sprintf('\'%s\'', (string) $item); + }, $this->commandline)); + } } diff --git a/test/Fixture/Placeholder/Any.php b/test/Fixture/Placeholder/Any.php index 7fde516..9e86481 100644 --- a/test/Fixture/Placeholder/Any.php +++ b/test/Fixture/Placeholder/Any.php @@ -11,4 +11,9 @@ public function matches(FixtureProviderInterface $context, string $value, string { return true; } + + public function toString(FixtureProviderInterface $context, string $phpVersion, string $applicationVersion): string + { + return ''; + } } diff --git a/test/Fixture/Placeholder/ContextReplacement.php b/test/Fixture/Placeholder/ContextReplacement.php index f69fc8c..0d7690a 100644 --- a/test/Fixture/Placeholder/ContextReplacement.php +++ b/test/Fixture/Placeholder/ContextReplacement.php @@ -16,7 +16,17 @@ public function __construct(string $pattern) public function matches(FixtureProviderInterface $context, string $value, string $phpVersion, string $applicationVersion) { - return $value === strtr($this->pattern, [ + return $value === $this->compile($context, $phpVersion, $applicationVersion); + } + + public function toString(FixtureProviderInterface $context, string $phpVersion, string $applicationVersion): string + { + return sprintf('\'%s\'', $this->compile($context, $phpVersion, $applicationVersion)); + } + + private function compile(FixtureProviderInterface $context, string $phpVersion, string $applicationVersion): string + { + return strtr($this->pattern, [ '%phpVersion%' => $phpVersion, '%application%' => $context->getApplication(), '%applicationVersion%' => $applicationVersion, diff --git a/test/Fixture/Placeholder/Regex.php b/test/Fixture/Placeholder/Regex.php index 1a04e3a..c652e16 100644 --- a/test/Fixture/Placeholder/Regex.php +++ b/test/Fixture/Placeholder/Regex.php @@ -18,4 +18,9 @@ public function matches(FixtureProviderInterface $context, string $value, string { return 0 < preg_match($this->pattern, $value); } + + public function toString(FixtureProviderInterface $context, string $phpVersion, string $applicationVersion): string + { + return sprintf('', $this->pattern); + } } diff --git a/test/Fixture/PlaceholderInterface.php b/test/Fixture/PlaceholderInterface.php index 3e9115d..3308bc1 100644 --- a/test/Fixture/PlaceholderInterface.php +++ b/test/Fixture/PlaceholderInterface.php @@ -5,4 +5,5 @@ interface PlaceholderInterface { public function matches(FixtureProviderInterface $context, string $value, string $phpVersion, string $applicationVersion); + public function toString(FixtureProviderInterface $context, string $phpVersion, string $applicationVersion): string; } diff --git a/test/Fixture/Platform/MarelloCommunityFixture.php b/test/Fixture/Platform/MarelloCommunityFixture.php index 591ec57..dbd8c1e 100644 --- a/test/Fixture/Platform/MarelloCommunityFixture.php +++ b/test/Fixture/Platform/MarelloCommunityFixture.php @@ -27,9 +27,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'marello', ['2.0', '2.1', '2.2'], false, $this->dbms)) @@ -38,9 +42,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'marello', ['2.0', '2.1', '2.2'], false, $this->dbms)) @@ -49,9 +57,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '-'], ) ->withExperimental() ; @@ -61,9 +73,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'marello', ['3.0'], false, $this->dbms)) @@ -72,9 +88,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/MarelloEnterpriseFixture.php b/test/Fixture/Platform/MarelloEnterpriseFixture.php index 525dfe2..5dcb691 100644 --- a/test/Fixture/Platform/MarelloEnterpriseFixture.php +++ b/test/Fixture/Platform/MarelloEnterpriseFixture.php @@ -27,9 +27,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'marello', ['2.0', '2.1', '2.2'], true, $this->dbms)) @@ -38,9 +44,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'marello', ['2.0', '2.1', '2.2'], true, $this->dbms)) @@ -49,9 +61,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-3.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-3.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; @@ -61,9 +79,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'marello', ['3.0'], true, $this->dbms)) @@ -72,9 +96,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-marello-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-marello-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-marello-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/MiddlewareCommunityFixture.php b/test/Fixture/Platform/MiddlewareCommunityFixture.php index 6673028..8d2ba84 100644 --- a/test/Fixture/Platform/MiddlewareCommunityFixture.php +++ b/test/Fixture/Platform/MiddlewareCommunityFixture.php @@ -27,9 +27,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'middleware', ['1.0'], false, $this->dbms)) @@ -38,9 +42,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/MiddlewareEnterpriseFixture.php b/test/Fixture/Platform/MiddlewareEnterpriseFixture.php index 614e8e9..538ee11 100644 --- a/test/Fixture/Platform/MiddlewareEnterpriseFixture.php +++ b/test/Fixture/Platform/MiddlewareEnterpriseFixture.php @@ -27,9 +27,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'middleware', ['1.0'], true, $this->dbms)) @@ -38,9 +44,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-middleware-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-middleware-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-4.1-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-middleware-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-middleware-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/OroCRMCommunityFixture.php b/test/Fixture/Platform/OroCRMCommunityFixture.php index e73a2d2..1604b14 100644 --- a/test/Fixture/Platform/OroCRMCommunityFixture.php +++ b/test/Fixture/Platform/OroCRMCommunityFixture.php @@ -4,7 +4,6 @@ use test\Kiboko\Cloud\Fixture\FixtureInterface; use test\Kiboko\Cloud\Fixture\Placeholder\ContextReplacement; -use test\Kiboko\Cloud\Fixture\Placeholder\Regex; use test\Kiboko\Cloud\Fixture\VisitableFixture; use test\Kiboko\Cloud\WizardAssertionFixtureProvider; @@ -27,67 +26,106 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; -// yield (new WizardAssertionFixtureProvider(['5.6', '7.1'], 'orocrm', ['2.6'], false, $this->dbms)) -// ->expectWizardMessages( -// 'Choosing OroCRM Community Edition, version %applicationVersion%.', -// ) -// ->expectImageBuildProcesses( -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ) -// ; -// yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'orocrm', ['3.1'], false, $this->dbms)) -// ->expectWizardMessages( -// 'Choosing OroCRM Community Edition, version %applicationVersion%.', -// ) -// ->expectImageBuildProcesses( -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ) -// ; -// yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'orocrm', ['3.1'], false, $this->dbms)) -// ->expectWizardMessages( -// 'Choosing OroCRM Community Edition, version %applicationVersion%.', -// ) -// ->expectImageBuildProcesses( -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ) -// ->withExperimental() -// ; -// yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'orocrm', ['4.1', '4.2'], false, $this->dbms)) -// ->expectWizardMessages( -// 'Choosing OroCRM Community Edition, version %applicationVersion%.', -// ) -// ->expectImageBuildProcesses( -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ) -// ; -// yield (new WizardAssertionFixtureProvider(['8.0'], 'orocrm', ['4.1', '4.2'], false, $this->dbms)) -// ->expectWizardMessages( -// 'Choosing OroCRM Community Edition, version %applicationVersion%.', -// ) -// ->expectImageBuildProcesses( -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], -// ) -// ->withExperimental() -// ; + yield (new WizardAssertionFixtureProvider(['5.6', '7.1'], 'orocrm', ['2.6'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'orocrm', ['3.1'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'orocrm', ['3.1'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ->withExperimental() + ; + yield (new WizardAssertionFixtureProvider(['7.3'], 'orocrm', ['4.1'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'orocrm', ['4.1', '4.2'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['8.0'], 'orocrm', ['4.1', '4.2'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ->withExperimental() + ; } } diff --git a/test/Fixture/Platform/OroCRMEnterpriseFixture.php b/test/Fixture/Platform/OroCRMEnterpriseFixture.php index 052e74e..c3fdff4 100644 --- a/test/Fixture/Platform/OroCRMEnterpriseFixture.php +++ b/test/Fixture/Platform/OroCRMEnterpriseFixture.php @@ -27,9 +27,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['5.6', '7.1'], 'orocrm', ['2.6'], true, $this->dbms)) @@ -38,9 +44,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'orocrm', ['3.1'], true, $this->dbms)) @@ -49,9 +61,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'orocrm', ['3.1'], true, $this->dbms)) @@ -60,21 +78,50 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; - yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'orocrm', ['4.1', '4.2'], true, $this->dbms)) + yield (new WizardAssertionFixtureProvider(['7.3'], 'orocrm', ['4.1'], true, $this->dbms)) ->expectWizardMessages( 'Choosing OroCRM Enterprise Edition, version %applicationVersion%.', ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'orocrm', ['4.1', '4.2'], true, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCRM Enterprise Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'orocrm', ['4.1', '4.2'], true, $this->dbms)) @@ -83,9 +130,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocrm-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocrm-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/OroCommerceCommunityFixture.php b/test/Fixture/Platform/OroCommerceCommunityFixture.php index 7e97372..6aef0ce 100644 --- a/test/Fixture/Platform/OroCommerceCommunityFixture.php +++ b/test/Fixture/Platform/OroCommerceCommunityFixture.php @@ -27,9 +27,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'orocommerce', ['3.1'], false, $this->dbms)) @@ -38,9 +42,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'orocommerce', ['3.1'], false, $this->dbms)) @@ -49,21 +57,44 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; - yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'orocommerce', ['4.1', '4.2'], false, $this->dbms)) + yield (new WizardAssertionFixtureProvider(['7.3'], 'orocommerce', ['4.1'], false, $this->dbms)) ->expectWizardMessages( 'Choosing OroCommerce Community Edition, version %applicationVersion%.', ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'orocommerce', ['4.1', '4.2'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCommerce Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'orocommerce', ['4.1', '4.2'], false, $this->dbms)) @@ -72,9 +103,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/OroCommerceEnterpriseFixture.php b/test/Fixture/Platform/OroCommerceEnterpriseFixture.php index 634ac80..98fe9c1 100644 --- a/test/Fixture/Platform/OroCommerceEnterpriseFixture.php +++ b/test/Fixture/Platform/OroCommerceEnterpriseFixture.php @@ -27,9 +27,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-2.6-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-2.6-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'orocommerce', ['3.1'], true, $this->dbms)) @@ -38,9 +44,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'orocommerce', ['3.1'], true, $this->dbms)) @@ -49,21 +61,50 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; - yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'orocommerce', ['4.1', '4.2'], true, $this->dbms)) + yield (new WizardAssertionFixtureProvider(['7.3'], 'orocommerce', ['4.1'], true, $this->dbms)) ->expectWizardMessages( 'Choosing OroCommerce Enterprise Edition, version %applicationVersion%.', ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'orocommerce', ['4.1', '4.2'], true, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroCommerce Enterprise Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'orocommerce', ['4.1', '4.2'], true, $this->dbms)) @@ -72,9 +113,15 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-orocommerce-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-orocommerce-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/OroPlatformCommunityFixture.php b/test/Fixture/Platform/OroPlatformCommunityFixture.php index d44c184..a326705 100644 --- a/test/Fixture/Platform/OroPlatformCommunityFixture.php +++ b/test/Fixture/Platform/OroPlatformCommunityFixture.php @@ -4,7 +4,6 @@ use test\Kiboko\Cloud\Fixture\FixtureInterface; use test\Kiboko\Cloud\Fixture\Placeholder\ContextReplacement; -use test\Kiboko\Cloud\Fixture\Placeholder\Regex; use test\Kiboko\Cloud\Fixture\VisitableFixture; use test\Kiboko\Cloud\WizardAssertionFixtureProvider; @@ -27,9 +26,11 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['5.6', '7.1'], 'oroplatform', ['2.6'], false, $this->dbms)) @@ -38,9 +39,11 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'oroplatform', ['3.1'], false, $this->dbms)) @@ -49,9 +52,11 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'oroplatform', ['3.1'], false, $this->dbms)) @@ -60,21 +65,38 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ->withExperimental() ; - yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'oroplatform', ['4.1', '4.2'], false, $this->dbms)) + yield (new WizardAssertionFixtureProvider(['7.3'], 'oroplatform', ['4.1'], false, $this->dbms)) ->expectWizardMessages( 'Choosing OroPlatform Community Edition, version %applicationVersion%.', ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'oroplatform', ['4.1', '4.2'], false, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroPlatform Community Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'oroplatform', ['4.1', '4.2'], false, $this->dbms)) @@ -83,9 +105,11 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Fixture/Platform/OroPlatformEnterpriseFixture.php b/test/Fixture/Platform/OroPlatformEnterpriseFixture.php index a902156..f6ae7fb 100644 --- a/test/Fixture/Platform/OroPlatformEnterpriseFixture.php +++ b/test/Fixture/Platform/OroPlatformEnterpriseFixture.php @@ -27,9 +27,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], +// ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['5.6', '7.1'], 'oroplatform', ['2.6'], true, $this->dbms)) @@ -38,9 +42,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.1', '7.2'], 'oroplatform', ['3.1'], true, $this->dbms)) @@ -49,9 +57,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['7.3', '7.4', '8.0'], 'oroplatform', ['3.1'], true, $this->dbms)) @@ -60,21 +72,44 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; - yield (new WizardAssertionFixtureProvider(['7.3', '7.4'], 'oroplatform', ['4.1', '4.2'], true, $this->dbms)) + yield (new WizardAssertionFixtureProvider(['7.3'], 'oroplatform', ['4.1'], true, $this->dbms)) ->expectWizardMessages( 'Choosing OroPlatform Enterprise Edition, version %applicationVersion%.', ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ) + ; + yield (new WizardAssertionFixtureProvider(['7.4'], 'oroplatform', ['4.1', '4.2'], true, $this->dbms)) + ->expectWizardMessages( + 'Choosing OroPlatform Enterprise Edition, version %applicationVersion%.', + ) + ->expectImageBuildProcesses( + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ; yield (new WizardAssertionFixtureProvider(['8.0'], 'oroplatform', ['4.1', '4.2'], true, $this->dbms)) @@ -83,9 +118,13 @@ public function get(): iterable ) ->expectImageBuildProcesses( ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-fpm-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-fpm-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], - ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%application%-%applicationEdition%-%applicationVersion%-%dbms%'), '--build-arg', new Regex('/^SOURCE_VARIATION=/'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-%dbms%'), '-'], + ['docker', 'build', '--rm', '--tag', new ContextReplacement('kiboko-test/php:%phpVersion%-cli-oroplatform-ee-%applicationVersion%-%dbms%'), '--build-arg', new ContextReplacement('SOURCE_VARIATION=%phpVersion%-cli-oroplatform-ce-%applicationVersion%-%dbms%'), '-'], ) ->withExperimental() ; diff --git a/test/Image/ImageBuildWithMySQLTest.php b/test/Image/ImageBuildWithMySQLTest.php index 6b0f802..91ef96d 100644 --- a/test/Image/ImageBuildWithMySQLTest.php +++ b/test/Image/ImageBuildWithMySQLTest.php @@ -89,10 +89,8 @@ public function testSuccessfulWizard(array $inputOptions, array $desiredOutputs, $inputOptions ) ); - } catch (Exception|\UnexpectedValueException $exception) { - $this->fail($exception->getMessage()); } catch (\Throwable $exception) { - $this->fail($tester->getDisplay()); + $this->fail($exception->getMessage()); } $this->assertEquals(0, $returnCode); diff --git a/test/Image/ImageBuildWithPostgreSQLTest.php b/test/Image/ImageBuildWithPostgreSQLTest.php new file mode 100644 index 0000000..8d91202 --- /dev/null +++ b/test/Image/ImageBuildWithPostgreSQLTest.php @@ -0,0 +1,104 @@ +dbms = 'postgresql'; + } + + public function setUp(): void + { + $this->fs = FileSystem::factory(); + $this->fs->mount(); + + $this->fs->get('/') + ->add('test', new Directory()); + + if (!$this->dropImages(...$this->listImages('kiboko-test/php'))) { + $this->markTestIncomplete('Could not delete the Docker image tags for kiboko-test/php image.'); + } + } + + private function listImages(string $image): iterable + { + $process = new Process(['docker', 'images', '-q', $image]); + + $process->run(); + + return array_filter(explode(PHP_EOL, $process->getOutput())); + } + + private function dropImages(string ...$identifiers): bool + { + if (count($identifiers) <= 0) { + return true; + } + $process = new Process(['docker', 'rmi', ...$identifiers]); + + $process->run(); + + return 0 === $process->getExitCode(); + } + + public function tearDown(): void + { + $this->fs->unmount(); + $this->fs = null; + } + + /** + * @dataProvider useAll + */ + public function testSuccessfulWizard(array $inputOptions, array $desiredOutputs, array $desiredProcesses) + { + $tester = new CommandTester( + new Command\Images\BuildCommand( + $commandRunner = new TestCommandRunner(), + __DIR__ . '/../../config', + __DIR__ . '/../../environments', + Command\Images\BuildCommand::$defaultName, + ) + ); + + try { + $returnCode = $tester->execute( + array_merge( + [ + '--working-directory' => sprintf('%s://test', $this->fs->getScheme()) + ], + $inputOptions + ) + ); + } catch (\Throwable $exception) { + $this->fail($exception->getMessage()); + } + + $this->assertEquals(0, $returnCode); + + foreach ($desiredOutputs as $output) { + $this->assertStringContainsString($output, $tester->getDisplay()); + } + + $this->assertCommandRunnerHasRunCommands($commandRunner, $desiredProcesses); + } +} diff --git a/test/Stack/Assertion/AssertTrait.php b/test/Stack/Assertion/AssertTrait.php new file mode 100644 index 0000000..b690073 --- /dev/null +++ b/test/Stack/Assertion/AssertTrait.php @@ -0,0 +1,43 @@ +assertThat($dockerComposePath, new DockerServiceUsesImagePattern($service, $pattern), $message); + } + + public function assertDockerServiceNotUsesImagePattern(string $dockerComposePath, string $service, string $pattern, string $message = ''): void + { + $this->assertThat($dockerComposePath, new LogicalNot(new DockerServiceUsesImagePattern($service, $pattern)), $message); + } + + public function assertDockerImageExists(string $dockerImage, string $message = ''): void + { + $this->assertThat($dockerImage, new DockerImageExists(), $message); + } + + public function assertDockerImageNotExists(string $dockerImage, string $message = ''): void + { + $this->assertThat($dockerImage, new LogicalNot(new DockerImageExists()), $message); + } + + public function assertCommandRunnerHasRunCommands(TestCommandRunner $commandRunner, array $commands, string $message = ''): void + { + $this->assertThat($commands, new CommandRunnerHasRunCommands($commandRunner), $message); + } + + public function assertCommandRunnerHasNotRunCommand(TestCommandRunner $commandRunner, array $commands, string $message = ''): void + { + $this->assertThat($commands, new LogicalNot(new CommandRunnerHasRunCommands($commandRunner)), $message); + } +} diff --git a/test/WizardAssertionFixtureProvider.php b/test/WizardAssertionFixtureProvider.php index 09c4227..9a90ed2 100644 --- a/test/WizardAssertionFixtureProvider.php +++ b/test/WizardAssertionFixtureProvider.php @@ -2,7 +2,6 @@ namespace test\Kiboko\Cloud; -use Composer\Semver\Semver; use test\Kiboko\Cloud\Fixture\FixtureProviderInterface; final class WizardAssertionFixtureProvider implements FixtureProviderInterface, \IteratorAggregate @@ -239,7 +238,7 @@ private function generateMessages(string $phpVersion, string $applicationVersion private function generateProcesses(string $phpVersion, string $applicationVersion): \Iterator { foreach ($this->expectedImageBuildProcesses as $process) { - yield new ProcessMatcher($this, $process, $phpVersion, $applicationVersion); + yield new CommandExpectation($this, $process, $phpVersion, $applicationVersion); } } }