Skip to content

Commit 2155e70

Browse files
committed
Magento 2.4.4-p4, 2.4.5-p3, 2.4.6-p1 support
1 parent 038c6e1 commit 2155e70

File tree

28 files changed

+78924
-9
lines changed

28 files changed

+78924
-9
lines changed

build-packages/magento-scripts/lib/config/scandipwa-versions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ const scandipwaMagentoVersionMapping = {
1010
'2.4.1': '3.2.0 - 4.2.1',
1111
'2.4.2': '4.3.0 - 5.0.3',
1212
'2.4.3': '5.0.4 - 5.2.7',
13-
'2.4.4': '5.3.0+'
13+
'2.4.4': '5.3.0+',
14+
'2.4.6': '6.2.0+'
1415
}
1516

1617
module.exports = scandipwaMagentoVersionMapping
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const defaultEnv = require('../default-es-env')
2+
3+
/**
4+
* @returns {import('../../../../../typings/index').ElasticSearchConfiguration}
5+
*/
6+
const elasticsearch85 = () => ({
7+
image: 'elasticsearch:8.5.3',
8+
env: defaultEnv
9+
})
10+
11+
module.exports = elasticsearch85

build-packages/magento-scripts/lib/config/services/elasticsearch/versions/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const elasticsearch712 = require('./elasticsearch-7.12')
77
const elasticsearch716 = require('./elasticsearch-7.16')
88
const elasticsearch717 = require('./elasticsearch-7.17')
99
const elasticsearch84 = require('./elasticsearch-8.4')
10+
const elasticsearch85 = require('./elasticsearch-8.5')
1011

1112
module.exports = {
1213
elasticsearch68,
@@ -17,5 +18,6 @@ module.exports = {
1718
elasticsearch712,
1819
elasticsearch716,
1920
elasticsearch717,
20-
elasticsearch84
21+
elasticsearch84,
22+
elasticsearch85
2123
}

build-packages/magento-scripts/lib/config/services/varnish/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ module.exports = {
22
varnish60: require('./varnish-6-0'),
33
varnish66: require('./varnish-6-6'),
44
varnish70: require('./varnish-7-0'),
5-
varnish71: require('./varnish-7-1')
5+
varnish71: require('./varnish-7-1'),
6+
varnish73: require('./varnish-7-3')
67
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const path = require('path')
2+
3+
/**
4+
* @param {Object} param0
5+
* @param {string} param0.templateDir
6+
* @returns {import('../../../../typings/index').VarnishConfiguration}
7+
*/
8+
const varnish73 = ({ templateDir }) => ({
9+
enabled: true,
10+
healthCheck: false,
11+
image: 'varnish:7.3',
12+
configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
13+
})
14+
15+
module.exports = varnish73
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const { defaultMagentoConfig } = require('../magento-config')
2+
const sodium = require('../services/php/extensions/sodium')
3+
const {
4+
magento24PHPExtensionList
5+
} = require('../magento/required-php-extensions')
6+
const { php81 } = require('../services/php/versions')
7+
const { sslTerminator } = require('../services/ssl-terminator')
8+
const { varnish73 } = require('../services/varnish')
9+
const { repo } = require('../services/php/base-repo')
10+
const { nginx118 } = require('../services/nginx/versions')
11+
const { composer2 } = require('../services/composer/versions')
12+
const { maildev } = require('../services/maildev')
13+
const { redis62 } = require('../services/redis')
14+
const { mariadb104 } = require('../services/mariadb/versions')
15+
const { elasticsearch717 } = require('../services/elasticsearch/versions')
16+
const { mysql80 } = require('../services/mysql/versions')
17+
18+
/**
19+
* @param {Object} param0
20+
* @param {string} param0.templateDir
21+
* @returns {import('../../../typings/index').CMAConfiguration & { magentoVersion: string, isDefault?: boolean }}
22+
*/
23+
module.exports = ({ templateDir }) => ({
24+
magentoVersion: '2.4.4-p4',
25+
isDefault: true,
26+
configuration: {
27+
php: php81({
28+
templateDir,
29+
extensions: { ...magento24PHPExtensionList, sodium },
30+
baseImage: `${repo}:php-8.1-magento-2.4`
31+
}),
32+
nginx: nginx118({ templateDir }),
33+
redis: redis62(),
34+
mysql: mysql80(),
35+
mariadb: mariadb104(),
36+
elasticsearch: elasticsearch717(),
37+
composer: composer2(),
38+
varnish: varnish73({ templateDir }),
39+
sslTerminator: sslTerminator({ templateDir }),
40+
maildev: maildev()
41+
},
42+
magento: defaultMagentoConfig,
43+
host: 'localhost',
44+
ssl: {
45+
enabled: false
46+
}
47+
})
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const { defaultMagentoConfig } = require('../magento-config')
2+
const sodium = require('../services/php/extensions/sodium')
3+
const {
4+
magento24PHPExtensionList
5+
} = require('../magento/required-php-extensions')
6+
const { php81 } = require('../services/php/versions')
7+
const { sslTerminator } = require('../services/ssl-terminator')
8+
const { varnish73 } = require('../services/varnish')
9+
const { repo } = require('../services/php/base-repo')
10+
const { nginx118 } = require('../services/nginx/versions')
11+
const { composer2 } = require('../services/composer/versions')
12+
const { maildev } = require('../services/maildev')
13+
const { redis62 } = require('../services/redis')
14+
const { mariadb104 } = require('../services/mariadb/versions')
15+
const { elasticsearch717 } = require('../services/elasticsearch/versions')
16+
const { mysql80 } = require('../services/mysql/versions')
17+
18+
/**
19+
* @param {Object} param0
20+
* @param {string} param0.templateDir
21+
* @returns {import('../../../typings/index').CMAConfiguration & { magentoVersion: string, isDefault?: boolean }}
22+
*/
23+
module.exports = ({ templateDir }) => ({
24+
magentoVersion: '2.4.5-p3',
25+
isDefault: true,
26+
configuration: {
27+
php: php81({
28+
templateDir,
29+
extensions: { ...magento24PHPExtensionList, sodium },
30+
baseImage: `${repo}:php-8.1-magento-2.4`
31+
}),
32+
nginx: nginx118({ templateDir }),
33+
redis: redis62(),
34+
mysql: mysql80(),
35+
mariadb: mariadb104(),
36+
elasticsearch: elasticsearch717(),
37+
composer: composer2(),
38+
varnish: varnish73({ templateDir }),
39+
sslTerminator: sslTerminator({ templateDir }),
40+
maildev: maildev()
41+
},
42+
magento: defaultMagentoConfig,
43+
host: 'localhost',
44+
ssl: {
45+
enabled: false
46+
}
47+
})
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const { defaultMagentoConfig } = require('../magento-config')
2+
const sodium = require('../services/php/extensions/sodium')
3+
const {
4+
magento24PHPExtensionList
5+
} = require('../magento/required-php-extensions')
6+
const { php81 } = require('../services/php/versions')
7+
const { sslTerminator } = require('../services/ssl-terminator')
8+
const { varnish73 } = require('../services/varnish')
9+
const { repo } = require('../services/php/base-repo')
10+
const { nginx118 } = require('../services/nginx/versions')
11+
const { composer2 } = require('../services/composer/versions')
12+
const { maildev } = require('../services/maildev')
13+
const { redis70 } = require('../services/redis')
14+
const { mariadb104 } = require('../services/mariadb/versions')
15+
const { elasticsearch85 } = require('../services/elasticsearch/versions')
16+
const { mysql80 } = require('../services/mysql/versions')
17+
18+
/**
19+
* @param {Object} param0
20+
* @param {string} param0.templateDir
21+
* @returns {import('../../../typings/index').CMAConfiguration & { magentoVersion: string, isDefault?: boolean }}
22+
*/
23+
module.exports = ({ templateDir }) => ({
24+
magentoVersion: '2.4.6-p1',
25+
isDefault: true,
26+
configuration: {
27+
php: php81({
28+
templateDir,
29+
extensions: { ...magento24PHPExtensionList, sodium },
30+
baseImage: `${repo}:php-8.1-magento-2.4`
31+
}),
32+
nginx: nginx118({ templateDir }),
33+
redis: redis70(),
34+
mysql: mysql80(),
35+
mariadb: mariadb104(),
36+
elasticsearch: elasticsearch85(),
37+
composer: composer2(),
38+
varnish: varnish73({ templateDir }),
39+
sslTerminator: sslTerminator({ templateDir }),
40+
maildev: maildev()
41+
},
42+
magento: defaultMagentoConfig,
43+
host: 'localhost',
44+
ssl: {
45+
enabled: false
46+
}
47+
})

build-packages/magento-scripts/lib/util/config-file-validator.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const Joi = require('joi')
2-
const semver = require('semver')
32
const KnownError = require('../errors/known-error')
43
const pathExistsSync = require('./path-exists-sync')
54

@@ -16,14 +15,27 @@ const fileExistsValidator = (value) => {
1615
return undefined
1716
}
1817

18+
const composerVersionRegex =
19+
/^latest-(\d+\.\d+\.?(x|\d)+?)$|^latest-stable$|^latest-preview$|^latest-(\d+\.x)$|^(\d+\.\d+\.\d+?)$/gi
20+
1921
/**
2022
* @type {Joi.CustomValidator<string>}
2123
*/
2224
const versionValidator = (value, helpers) => {
23-
const isValid = semver.valid(value)
24-
25-
if (!isValid) {
26-
return helpers.error('any.invalid')
25+
const isValidComposerVersion = composerVersionRegex.test(value)
26+
27+
if (!isValidComposerVersion) {
28+
return helpers.error('any.invalid', {
29+
label: `Not a valid composer version!
30+
Allowed patterns:
31+
- latest-stable
32+
- latest-preview
33+
- latest-2.2.x
34+
- latest-2.x
35+
- latest-1.x
36+
- 2.2.21
37+
`
38+
})
2739
}
2840

2941
return undefined

build-packages/magento-scripts/typings/index.d.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ export interface ComposerConfiguration {
8989
*
9090
* @url https://getcomposer.org/download/
9191
*/
92-
version: string
92+
version: 'latest-stable'
93+
| 'latest-preview'
94+
| 'latest-1.x'
95+
| 'latest-2.x'
96+
| 'latest-2.2.x'
97+
| ''
9398

9499
/**
95100
* Composer global plugins that will be added to Docker image

0 commit comments

Comments
 (0)