diff --git a/.travis.yml b/.travis.yml index 890b222..9c62b41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,6 +39,11 @@ jobs: php: '7.1' env: - TEST_SUITE=functional-ee + - PART_INDEX=1 + - php: '7.1' + env: + - TEST_SUITE=functional-ee + - PART_INDEX=2 - php: '7.2' env: - TEST_SUITE=functional-ee @@ -48,6 +53,11 @@ jobs: - php: '7.1' env: - TEST_SUITE=functional-ce + - PART_INDEX=1 + - php: '7.1' + env: + - TEST_SUITE=functional-ce + - PART_INDEX=2 - php: '7.2' env: - TEST_SUITE=functional-ce diff --git a/codeception.dist.yml b/codeception.dist.yml index 2badeb2..fe81096 100644 --- a/codeception.dist.yml +++ b/codeception.dist.yml @@ -21,6 +21,7 @@ modules: mcc_repo: "https://github.com/magento/magento-cloud-components.git" mcp_repo: "https://github.com/magento/magento-cloud-patches.git" mqp_repo: "https://github.com/magento/quality-patches.git" + ece_tools_repo: "https://github.com/magento/ece-tools.git" composer_magento_username: "%REPO_USERNAME%" composer_magento_password: "%REPO_PASSWORD%" composer_github_token: "%GITHUB_TOKEN%" diff --git a/src/Test/Functional/Acceptance/AbstractCest.php b/src/Test/Functional/Acceptance/AbstractCest.php index a5c9eea..64f489b 100644 --- a/src/Test/Functional/Acceptance/AbstractCest.php +++ b/src/Test/Functional/Acceptance/AbstractCest.php @@ -28,8 +28,9 @@ public function _before(\CliTester $I): void /** * @param \CliTester $I * @param string $templateVersion + * @param string $magentoVersion */ - protected function prepareTemplate(\CliTester $I, string $templateVersion): void + protected function prepareTemplate(\CliTester $I, string $templateVersion, string $magentoVersion = null): void { $I->cloneTemplateToWorkDir($templateVersion); $I->createAuthJson(); @@ -38,6 +39,7 @@ protected function prepareTemplate(\CliTester $I, string $templateVersion): void $I->addArtifactsRepoToComposer(); $I->addEceDockerGitRepoToComposer(); $I->addQualityPatchesGitRepoToComposer(); + $I->addEceToolsGitRepoToComposer(); $I->addDependencyToComposer('magento/magento-cloud-patches', '1.0.99'); $I->addDependencyToComposer( 'magento/magento-cloud-docker', @@ -48,11 +50,15 @@ protected function prepareTemplate(\CliTester $I, string $templateVersion): void $I->getDependencyVersion('magento/quality-patches') ); - if ($this->edition === 'CE') { - $version = $this->getVersionRangeForMagento($I); + $I->addDependencyToComposer('magento/ece-tools', 'dev-develop as 2002.1.99'); + + if ($this->edition === 'CE' || $magentoVersion) { + $version = $magentoVersion ?: $this->getVersionRangeForMagento($I); $I->removeDependencyFromComposer('magento/magento-cloud-metapackage'); - $I->addDependencyToComposer('magento/ece-tools', '^2002.1.0'); - $I->addDependencyToComposer('magento/product-community-edition', $version); + $I->addDependencyToComposer( + $this->edition === 'CE' ? 'magento/product-community-edition' : 'magento/product-enterprise-edition', + $version + ); } $I->composerUpdate(); @@ -67,6 +73,17 @@ protected function convertEnvFromArrayToJson(array $data): string return addslashes(json_encode($data)); } + /** + * @param \CliTester $I + * @return string + */ + protected function getVersionRangeForMagento(\CliTester $I): string + { + $composer = json_decode(file_get_contents($I->getWorkDirPath() . '/composer.json'), true); + + return $composer['require']['magento/magento-cloud-metapackage'] ?? ''; + } + /** * @param \CliTester $I */ diff --git a/src/Test/Functional/Acceptance/Acceptance71CeCest.php b/src/Test/Functional/Acceptance/Acceptance71CeCest.php index 26f2d77..11d68a0 100644 --- a/src/Test/Functional/Acceptance/Acceptance71CeCest.php +++ b/src/Test/Functional/Acceptance/Acceptance71CeCest.php @@ -8,7 +8,7 @@ namespace Magento\CloudPatches\Test\Functional\Acceptance; /** - * @group php71ce + * @group php71cePart1 */ class Acceptance71CeCest extends Acceptance71Cest { diff --git a/src/Test/Functional/Acceptance/Acceptance71CePart2Cest.php b/src/Test/Functional/Acceptance/Acceptance71CePart2Cest.php new file mode 100644 index 0000000..9b9a8e2 --- /dev/null +++ b/src/Test/Functional/Acceptance/Acceptance71CePart2Cest.php @@ -0,0 +1,19 @@ + '2.2.1'], ['templateVersion' => '2.2.2'], ['templateVersion' => '2.2.3'], - ['templateVersion' => '2.2.4'], - ['templateVersion' => '2.2.5'], - ['templateVersion' => '2.2.6'], - ['templateVersion' => '2.2.7'], - ['templateVersion' => '2.2.8'], - ['templateVersion' => '2.2.9'], - ['templateVersion' => '2.2.10'], - ['templateVersion' => '2.2.11'], ]; } } diff --git a/src/Test/Functional/Acceptance/Acceptance71Part2Cest.php b/src/Test/Functional/Acceptance/Acceptance71Part2Cest.php new file mode 100644 index 0000000..87df856 --- /dev/null +++ b/src/Test/Functional/Acceptance/Acceptance71Part2Cest.php @@ -0,0 +1,31 @@ + '2.2.4'], + ['templateVersion' => '2.2.5'], + ['templateVersion' => '2.2.6'], + ['templateVersion' => '2.2.7'], + ['templateVersion' => '2.2.8'], + ['templateVersion' => '2.2.9'], + ['templateVersion' => '2.2.10'], + ['templateVersion' => '2.2.11'], + ]; + } +} diff --git a/src/Test/Functional/Acceptance/Acceptance72Cest.php b/src/Test/Functional/Acceptance/Acceptance72Cest.php index 0eb28f0..956eba2 100644 --- a/src/Test/Functional/Acceptance/Acceptance72Cest.php +++ b/src/Test/Functional/Acceptance/Acceptance72Cest.php @@ -20,7 +20,8 @@ protected function patchesDataProvider(): array return [ ['templateVersion' => '2.3.0'], ['templateVersion' => '2.3.1'], - ['templateVersion' => '2.3.2'], + ['templateVersion' => '2.3.2', 'magentoVersion' => '2.3.2'], + ['templateVersion' => '2.3.2', 'magentoVersion' => '2.3.2-p2'], ]; } } diff --git a/src/Test/Functional/Acceptance/AcceptanceCest.php b/src/Test/Functional/Acceptance/AcceptanceCest.php index 6e3ae99..f0fd048 100644 --- a/src/Test/Functional/Acceptance/AcceptanceCest.php +++ b/src/Test/Functional/Acceptance/AcceptanceCest.php @@ -14,13 +14,10 @@ class AcceptanceCest extends AbstractCest { /** * @param \CliTester $I - * @return string */ - protected function getVersionRangeForMagento(\CliTester $I): string + public function _before(\CliTester $I): void { - $composer = json_decode(file_get_contents($I->getWorkDirPath() . '/composer.json'), true); - - return $composer['require']['magento/magento-cloud-metapackage'] ?? ''; + parent::_before($I); } /** @@ -31,7 +28,8 @@ protected function getVersionRangeForMagento(\CliTester $I): string */ public function testPatches(\CliTester $I, \Codeception\Example $data): void { - $this->prepareTemplate($I, $data['templateVersion']); + $this->prepareTemplate($I, $data['templateVersion'], $data['magentoVersion'] ?? null); + $I->copyFileToWorkDir('files/patches/.apply_quality_patches.env.yaml', '.magento.env.yaml'); $I->runEceDockerCommand(sprintf( 'build:compose --mode=production --env-vars="%s"', $this->convertEnvFromArrayToJson(['MAGENTO_CLOUD_PROJECT' => 'travis-testing']) @@ -51,9 +49,12 @@ public function testPatches(\CliTester $I, \Codeception\Example $data): void protected function patchesDataProvider(): array { return [ - ['templateVersion' => '2.3.3'], - ['templateVersion' => '2.3.4'], - ['templateVersion' => '2.3.5'], + ['templateVersion' => '2.3.3', 'magentoVersion' => '2.3.3'], + ['templateVersion' => '2.3.3', 'magentoVersion' => '2.3.3-p1'], + ['templateVersion' => '2.3.4', 'magentoVersion' => '2.3.4'], + ['templateVersion' => '2.3.4', 'magentoVersion' => '2.3.4-p2'], + ['templateVersion' => '2.3.5', 'magentoVersion' => '2.3.5'], + ['templateVersion' => '2.3.5', 'magentoVersion' => '2.3.5-p1'], ['templateVersion' => 'master'], ]; } diff --git a/tests/functional/_data/files/patches/.apply_quality_patches.env.yaml b/tests/functional/_data/files/patches/.apply_quality_patches.env.yaml new file mode 100644 index 0000000..93fc5e5 --- /dev/null +++ b/tests/functional/_data/files/patches/.apply_quality_patches.env.yaml @@ -0,0 +1,4 @@ +stage: + build: + QUALITY_PATCHES: + - '*' diff --git a/tests/travis/functional-ce.sh b/tests/travis/functional-ce.sh index 6eedc70..ab0e3f7 100755 --- a/tests/travis/functional-ce.sh +++ b/tests/travis/functional-ce.sh @@ -8,7 +8,7 @@ trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit case $TRAVIS_PHP_VERSION in 7.1) - ./vendor/bin/codecept run -g php71ce --steps + ./vendor/bin/codecept run -g php71cePart$PART_INDEX --steps ;; 7.2) ./vendor/bin/codecept run -g php72ce --steps diff --git a/tests/travis/functional-ee.sh b/tests/travis/functional-ee.sh index a0d12a1..467b6f1 100755 --- a/tests/travis/functional-ee.sh +++ b/tests/travis/functional-ee.sh @@ -8,7 +8,7 @@ trap '>&2 echo Error: Command \`$BASH_COMMAND\` on line $LINENO failed with exit case $TRAVIS_PHP_VERSION in 7.1) - ./vendor/bin/codecept run -g php71 --steps + ./vendor/bin/codecept run -g php71cePart$PART_INDEX --steps ;; 7.2) ./vendor/bin/codecept run -g php72 --steps