Skip to content

Commit 147b7d9

Browse files
authored
MCLOUD-7093: Change functionality to use images for patch versions (#6)
1 parent f730e89 commit 147b7d9

File tree

19 files changed

+170
-118
lines changed

19 files changed

+170
-118
lines changed
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/Service/ServiceFactory.php

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,20 +67,20 @@ class ServiceFactory
6767
ServiceInterface::SERVICE_DB_SALES => self::SERVICE_DB_CONFIG,
6868
ServiceInterface::SERVICE_NGINX => [
6969
'image' => 'magento/magento-cloud-docker-nginx',
70-
'version' => 'latest',
70+
'version' => '1.19',
7171
'pattern' => self::PATTERN_VERSIONED,
7272
'config' => [
7373
'extends' => ServiceInterface::SERVICE_GENERIC,
7474
]
7575
],
7676
ServiceInterface::SERVICE_VARNISH => [
7777
'image' => 'magento/magento-cloud-docker-varnish',
78-
'version' => 'latest',
78+
'version' => '6.2',
7979
'pattern' => self::PATTERN_VERSIONED,
8080
],
8181
ServiceInterface::SERVICE_TLS => [
8282
'image' => 'magento/magento-cloud-docker-nginx',
83-
'version' => 'latest',
83+
'version' => '1.19',
8484
'pattern' => self::PATTERN_VERSIONED,
8585
'config' => [
8686
'extends' => ServiceInterface::SERVICE_GENERIC,
@@ -145,6 +145,11 @@ class ServiceFactory
145145
*/
146146
private $fileList;
147147

148+
/**
149+
* @var string
150+
*/
151+
private $mcdVersion;
152+
148153
/**
149154
* @param FileList $fileList
150155
*/
@@ -173,18 +178,11 @@ public function create(string $name, string $version, array $config = [], string
173178
$metaConfig = self::$config[$name];
174179
$defaultConfig = $metaConfig['config'] ?? [];
175180

176-
$mcdVersion = Factory::create(new NullIO(), $this->fileList->getComposer())
177-
->getPackage()
178-
->getVersion();
179-
180-
/** Extract minor version. Patch version should not affect images. */
181-
preg_match('/^\d+\.\d+/', $mcdVersion, $matches);
182-
183181
$image = $image ?: $metaConfig['image'];
184182
$pattern = $metaConfig['pattern'];
185183

186184
return array_replace(
187-
['image' => sprintf($pattern, $image, $version, $matches[0])],
185+
['image' => sprintf($pattern, $image, $version, $this->getMcdVersion())],
188186
$defaultConfig,
189187
$config
190188
);
@@ -223,4 +221,24 @@ public function getDefaultVersion(string $name): string
223221
$name
224222
));
225223
}
224+
225+
/**
226+
* Returns patch version of magento-cloud-docker package
227+
*
228+
* @return string
229+
*/
230+
private function getMcdVersion(): string
231+
{
232+
if ($this->mcdVersion === null) {
233+
$mcdVersion = Factory::create(new NullIO(), $this->fileList->getComposer())
234+
->getPackage()
235+
->getVersion();
236+
237+
preg_match('/^\d+\.\d+\.\d+/', $mcdVersion, $matches);
238+
239+
$this->mcdVersion = $matches[0];
240+
}
241+
242+
return $this->mcdVersion;
243+
}
226244
}

src/Test/Functional/Acceptance/AbstractCest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ public function _before(\CliTester $I): void
3333
$I->cloneTemplateToWorkDir(static::TEMPLATE_VERSION);
3434
$I->createAuthJson();
3535
$I->createArtifactsDir();
36-
$I->createArtifactCurrentTestedCode('docker', '1.1.99');
36+
$I->createArtifactCurrentTestedCode('docker', '1.2.99');
3737
$I->addArtifactsRepoToComposer();
38-
$I->addDependencyToComposer('magento/magento-cloud-docker', '1.1.99');
38+
$I->addDependencyToComposer('magento/magento-cloud-docker', '1.2.99');
3939

4040
$I->addEceToolsGitRepoToComposer();
4141
$I->addDependencyToComposer('magento/ece-tools', 'dev-develop as 2002.1.99');

src/Test/Functional/Acceptance/Services71Cest.php

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ protected function servicesDataProvider(): array
2727
'options' => '',
2828
'expectedResult' => [
2929
'redis:5.0',
30-
'magento/magento-cloud-docker-varnish:latest-1.1',
31-
'magento/magento-cloud-docker-nginx:latest-1.1',
32-
'magento/magento-cloud-docker-php:7.1-fpm-1.1',
33-
'magento/magento-cloud-docker-elasticsearch:2.4-1.1',
30+
'magento/magento-cloud-docker-varnish:6.2-1.2',
31+
'magento/magento-cloud-docker-nginx:1.19-1.2',
32+
'magento/magento-cloud-docker-php:7.1-fpm-1.2',
33+
'magento/magento-cloud-docker-elasticsearch:2.4-1.2',
3434
'mariadb:10.2'
3535
],
3636
'notExpectedResult' => ['rabbitmq', 'selenium/standalone-chrome:latest', 'cron'],
@@ -39,10 +39,10 @@ protected function servicesDataProvider(): array
3939
'options' => '--redis=3.2 --db=10.1 --php=7.1 --rmq=3.5',
4040
'expectedResult' => [
4141
'redis:3.2',
42-
'magento/magento-cloud-docker-varnish:latest-1.1',
43-
'magento/magento-cloud-docker-nginx:latest-1.1',
44-
'magento/magento-cloud-docker-php:7.1-fpm-1.1',
45-
'magento/magento-cloud-docker-elasticsearch:2.4-1.1',
42+
'magento/magento-cloud-docker-varnish:6.2-1.2',
43+
'magento/magento-cloud-docker-nginx:1.19-1.2',
44+
'magento/magento-cloud-docker-php:7.1-fpm-1.2',
45+
'magento/magento-cloud-docker-elasticsearch:2.4-1.2',
4646
'mariadb:10.1',
4747
'rabbitmq:3.5'
4848
],
@@ -52,10 +52,10 @@ protected function servicesDataProvider(): array
5252
'options' => '--redis=4.0 --db=10.2 --php=7.1 --rmq=3.6',
5353
'expectedResult' => [
5454
'redis:4.0',
55-
'magento/magento-cloud-docker-varnish:latest-1.1',
56-
'magento/magento-cloud-docker-nginx:latest-1.1',
57-
'magento/magento-cloud-docker-php:7.1-fpm-1.1',
58-
'magento/magento-cloud-docker-elasticsearch:2.4-1.1',
55+
'magento/magento-cloud-docker-varnish:6.2-1.2',
56+
'magento/magento-cloud-docker-nginx:1.19-1.2',
57+
'magento/magento-cloud-docker-php:7.1-fpm-1.2',
58+
'magento/magento-cloud-docker-elasticsearch:2.4-1.2',
5959
'mariadb:10.2',
6060
'rabbitmq:3.6'
6161
],
@@ -65,10 +65,10 @@ protected function servicesDataProvider(): array
6565
'options' => '--with-cron --with-selenium',
6666
'expectedResult' => [
6767
'redis:5.0',
68-
'magento/magento-cloud-docker-varnish:latest-1.1',
69-
'magento/magento-cloud-docker-nginx:latest-1.1',
70-
'magento/magento-cloud-docker-php:7.1-fpm-1.1',
71-
'magento/magento-cloud-docker-elasticsearch:2.4-1.1',
68+
'magento/magento-cloud-docker-varnish:6.2-1.2',
69+
'magento/magento-cloud-docker-nginx:1.19-1.2',
70+
'magento/magento-cloud-docker-php:7.1-fpm-1.2',
71+
'magento/magento-cloud-docker-elasticsearch:2.4-1.2',
7272
'mariadb:10.2',
7373
'cron',
7474
'selenium/standalone-chrome:latest'

0 commit comments

Comments
 (0)