Compare commits

...

8 Commits

Author SHA1 Message Date
GrayBot 9992afe6f0 chore: release 3.0.0 (#191) 2025-04-09 15:11:48 -04:00
Damien Retzinger f48c544053 fix(supported-version): adjust failing tests (#195) 2025-04-09 13:29:32 -04:00
Damien Retzinger 21c3bb3436 feat(supported-version): add v2.4.4-p13, v2.4.5-p12, v2.4.6-p10, v2.4.7-p5 and v2.4.8 (#187) 2025-04-09 13:15:07 -04:00
Damien Retzinger 0f072ba9a0 ci: easy repo switching (#192) 2025-04-09 10:30:27 -04:00
Damien Retzinger 01cbea18c9 feat(setup-magento): add support for composer auth (#193) 2025-04-09 10:18:50 -04:00
Damien Retzinger 2f1b2eaa5d feat(supported-version): add recent kind (#188) 2025-04-09 09:51:01 -04:00
Damien Retzinger 157b6877e2 ci: only test supported versions (#189) 2025-04-09 09:46:56 -04:00
Damien Retzinger 0008e8642d fix(coding-standard)!: use magento/php-compatibility-fork (#190) 2025-04-09 09:46:33 -04:00
22 changed files with 351 additions and 146 deletions
@@ -39,7 +39,7 @@ jobs:
- uses: actions/checkout@v4
- uses: ./supported-version
with:
kind: all
kind: currently-supported
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
+6 -1
View File
@@ -21,6 +21,9 @@ on:
- "supported-version/**"
- "!(**/*.md)"
env:
MAGENTO_COMPOSER_REPO: "https://mirror.mage-os.org/"
jobs:
compute_matrix:
runs-on: ubuntu-latest
@@ -30,7 +33,7 @@ jobs:
- uses: actions/checkout@v4
- uses: ./supported-version
with:
kind: all
kind: currently-supported
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
@@ -49,3 +52,5 @@ jobs:
magento_version: ${{ matrix.magento }}
package_name: mage-os/magento2-demo-package
source_folder: $GITHUB_WORKSPACE/_test/demo-package
composer_auth: ${{ secrets.COMPOSER_AUTH }}
magento_repository: ${{ env.MAGENTO_COMPOSER_REPO }}
+3 -1
View File
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@v4
- uses: ./supported-version
with:
kind: all
kind: currently-supported
id: supported-version
- run: echo ${{ steps.supported-version.outputs.matrix }}
integration-workflow:
@@ -42,3 +42,5 @@ jobs:
matrix: ${{ needs.compute_matrix.outputs.matrix }}
test_command: ../../../vendor/bin/phpunit ../../../vendor/mage-os/magento2-demo-package/Test/Integration
fail-fast: false
secrets:
composer_auth: ${{ secrets.COMPOSER_AUTH }}
+18 -4
View File
@@ -22,6 +22,7 @@ on:
env:
PSEUDO_REPO_FOLDER: ../magento_repo
magento_folder: ../magento2
MAGENTO_COMPOSER_REPO: "https://mirror.mage-os.org/"
jobs:
compute_matrix:
@@ -63,20 +64,26 @@ jobs:
key: setup-magento-ci | ${{ runner.os }} | ${{ matrix.magento }}
path: ${{ env.PSEUDO_STORE_FULL_PATH }}
- run: composer create-project --repository-url="https://mirror.mage-os.org" "${{ matrix.magento }}" "${{ env.PSEUDO_REPO_FOLDER }}" --no-install
- run: composer create-project --repository-url="${{ env.MAGENTO_COMPOSER_REPO }}" "${{ matrix.magento }}" "${{ env.PSEUDO_REPO_FOLDER }}" --no-install
name: Create Store to simulate a real Magento store in a real repo.
if: steps.setup-magento-store-cache.outputs.cache-hit != 'true'
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- uses: ./fix-magento-install
name: Fix Magento Out of Box Install Issues
with:
magento_directory: ${{ env.PSEUDO_REPO_FOLDER }}
if: steps.setup-magento-store-cache.outputs.cache-hit != 'true'
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- run: composer install
shell: bash
working-directory: "${{ env.PSEUDO_REPO_FOLDER }}"
if: steps.setup-magento-store-cache.outputs.cache-hit != 'true'
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
- run: git init && git config user.email "you@example.com" && git config user.name "Your Name" && git add . && git commit -m "init" && git clean -fdx
working-directory: "${{ env.PSEUDO_REPO_FOLDER }}"
@@ -92,6 +99,7 @@ jobs:
tools: composer:v${{ matrix.composer }}
mode: store
working-directory: ${{ env.magento_folder }}
composer_auth: ${{ secrets.COMPOSER_AUTH }}
- uses: graycoreio/github-actions-magento2/cache-magento@main
with:
@@ -102,6 +110,8 @@ jobs:
name: Composer install
shell: bash
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
setup-magento-extension:
runs-on: ubuntu-latest
@@ -111,17 +121,21 @@ jobs:
- uses: ./setup-magento
id: setup-magento
with:
php-version: 8.1
php-version: 8.4
tools: composer:v2
mode: extension
magento_version: magento/project-community-edition:2.4.5-p1
magento_repository: ${{ env.MAGENTO_COMPOSER_REPO }}
composer_auth: ${{ secrets.COMPOSER_AUTH }}
magento_version: magento/project-community-edition:2.4.8
- uses: graycoreio/github-actions-magento2/cache-magento@main
with:
mode: 'extension'
composer_cache_key: 'magento/project-community-edition:2.4.5-p1'
composer_cache_key: 'magento/project-community-edition:2.4.8'
- run: composer install
name: Composer install
shell: bash
working-directory: ${{ steps.setup-magento.outputs.path }}
env:
COMPOSER_AUTH: ${{ secrets.COMPOSER_AUTH }}
+5
View File
@@ -205,6 +205,11 @@ jobs:
sudo dpkg -i libmysqlclient20_5.7.30-1ubuntu18.04_amd64.deb
mysqldump --version
- name: Enable log-bin-trust-function-creators
run: |
mysql -h127.0.0.1 -uroot -prootpassword -e "SET GLOBAL log_bin_trust_function_creators = 1;"
- run: ${{ inputs.test_command }}
working-directory: ${{ inputs.magento_directory }}/dev/tests/integration
name: Run Integration Tests
+1 -1
View File
@@ -1 +1 @@
{".":"2.0.0"}
{".":"3.0.0"}
+19
View File
@@ -2,6 +2,25 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [3.0.0](https://github.com/graycoreio/github-actions-magento2/compare/v2.0.0...v3.0.0) (2025-04-09)
### ⚠ BREAKING CHANGES
* **coding-standard:** use magento/php-compatibility-fork ([#190](https://github.com/graycoreio/github-actions-magento2/issues/190))
### Features
* **setup-magento:** add support for composer auth ([#193](https://github.com/graycoreio/github-actions-magento2/issues/193)) ([01cbea1](https://github.com/graycoreio/github-actions-magento2/commit/01cbea18c9649984893afd432a1cdfa4568a5273))
* **supported-version:** add recent kind ([#188](https://github.com/graycoreio/github-actions-magento2/issues/188)) ([2f1b2ea](https://github.com/graycoreio/github-actions-magento2/commit/2f1b2eaa5da485a687ecda0fdbf38055e13c5a86))
* **supported-version:** add v2.4.4-p13, v2.4.5-p12, v2.4.6-p10, v2.4.7-p5 and v2.4.8 ([#187](https://github.com/graycoreio/github-actions-magento2/issues/187)) ([21c3bb3](https://github.com/graycoreio/github-actions-magento2/commit/21c3bb34363c94003bf031f837c1599b8e08f25b))
### Bug Fixes
* **coding-standard:** use magento/php-compatibility-fork ([#190](https://github.com/graycoreio/github-actions-magento2/issues/190)) ([0008e86](https://github.com/graycoreio/github-actions-magento2/commit/0008e8642db9b997005c3848cf532f4b1cf0a17d))
* **supported-version:** adjust failing tests ([#195](https://github.com/graycoreio/github-actions-magento2/issues/195)) ([f48c544](https://github.com/graycoreio/github-actions-magento2/commit/f48c544053e49d76c4ac5aac6743ee6521a700aa))
## [2.0.0](https://github.com/graycoreio/github-actions-magento2/compare/v1.6.0...v2.0.0) (2025-03-25)
+3
View File
@@ -2,6 +2,9 @@
A Github Action that runs the Magento Coding Standard.
> [!WARNING]
> This action is only compatible with Magento v2.4.4+.
## Inputs
See the [action.yml](./action.yml)
+1 -1
View File
@@ -87,7 +87,7 @@ runs:
- name: Register Coding Standard
shell: bash
working-directory: standard
run: vendor/bin/phpcs --config-set installed_paths ${{ github.workspace }}/standard/vendor/magento/magento-coding-standard,${{ github.workspace }}/standard/vendor/phpcompatibility/php-compatibility
run: vendor/bin/phpcs --config-set installed_paths ${{ github.workspace }}/standard/vendor/magento/magento-coding-standard,${{ github.workspace }}/standard/vendor/magento/php-compatibility-fork
- name: Set ignore warnings flag
shell: bash
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "@graycoreio/github-actions-magento2",
"version": "2.0.0",
"version": "3.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@graycoreio/github-actions-magento2",
"version": "2.0.0",
"version": "3.0.0",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.10.0"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@graycoreio/github-actions-magento2",
"version": "2.0.0",
"version": "3.0.0",
"description": "Github Actions for Magento 2",
"scripts": {
"test": "cd supported-version && npm run test && cd -",
+6
View File
@@ -45,6 +45,10 @@ inputs:
default: "."
description: "The working directory to run the action in."
composer_auth:
required: false
description: "Composer Authentication Credentials"
outputs:
path:
description: "The absolute path to where Magento was set up."
@@ -83,6 +87,8 @@ runs:
shell: bash
name: Create Magento ${{ inputs.magento_version }} Project
if: inputs.mode == 'extension'
env:
COMPOSER_AUTH: ${{ inputs.composer_auth }}
- uses: graycoreio/github-actions-magento2/fix-magento-install@main
name: Fix Magento Out of Box Install Issues
+6 -1
View File
@@ -5,7 +5,7 @@ description: "A Github Action that computes the Github Actions matrix for the ch
inputs:
kind:
required: false
description: "The kind of versions you want to return. Allowed values are `currently-supported`, `latest`, `custom`, `nightly` and `all`"
description: "The kind of versions you want to return. Allowed values are `currently-supported`, `latest`, `custom`, `nightly`, `recent` and `all`"
default: "currently-supported"
project:
required: false
@@ -17,6 +17,11 @@ inputs:
description: "The specific custom versions of Magento that you want to use. Only applies when `kind` is `custom`"
default: ""
recent_time_frame:
required: false
default: "2y"
description: "The time frame (from today). Only used in `recent` kind. String that defines a time duration using a combination of years (y), months (m), and days (d). Each unit is optional and can appear in any order, separated by spaces. For example `2y 2m 2d`. "
outputs:
matrix:
description: "The Github Actions matrix of software technologies required to run Magento."
+6 -66
View File
File diff suppressed because one or more lines are too long
+2 -1
View File
@@ -9,12 +9,13 @@ export async function run(): Promise<void> {
const kind = core.getInput("kind");
const customVersions = core.getInput("custom_versions");
const project = core.getInput("project");
const recent_time_frame = core.getInput("recent_time_frame");
validateProject(<any>project)
validateKind(<any>kind, customVersions ? customVersions.split(',') : undefined);
core.setOutput('matrix', getMatrixForKind(kind, project, customVersions));
core.setOutput('matrix', getMatrixForKind(kind, project, customVersions, recent_time_frame));
}
catch (error) {
core.setFailed(error.message);
@@ -45,30 +45,37 @@ describe('getCurrentlySupportedVersions for magento-open-source', () => {
'magento/project-community-edition:2.4.7-p3',
]],
['2025-08-08T00:00:00Z', 'Day Before v2.4.5 EoL', [
'magento/project-community-edition:2.4.5-p11',
'magento/project-community-edition:2.4.6-p9',
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.5-p12',
'magento/project-community-edition:2.4.6-p10',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2025-08-09T00:00:00Z', 'Day of v2.4.5 EoL', [
'magento/project-community-edition:2.4.5-p11',
'magento/project-community-edition:2.4.6-p9',
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.5-p12',
'magento/project-community-edition:2.4.6-p10',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2025-08-10T00:00:00Z', 'Day after v2.4.5 EoL', [
'magento/project-community-edition:2.4.6-p9',
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.6-p10',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2025-12-31T00:00:00Z', 'End of 2025', [
'magento/project-community-edition:2.4.6-p9',
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.6-p10',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2026-03-15T00:00:00Z', 'Day after v2.4.6 EoL', [
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2027-04-09T00:00:00Z', 'Day of v2.4.7 EoL', [
'magento/project-community-edition:2.4.7-p4',
'magento/project-community-edition:2.4.7-p5',
'magento/project-community-edition:2.4.8',
]],
['2027-04-10T00:00:00Z', 'Day after v2.4.7 EoL', [
'magento/project-community-edition:2.4.8',
]],
])(
'supportedVersions for %s',
+1
View File
@@ -6,6 +6,7 @@ export const KNOWN_KINDS = {
'latest': true,
'custom': true,
'nightly': true,
'recent': true,
'all': true,
}
+75
View File
@@ -0,0 +1,75 @@
import { Project } from "../project/projects";
import { getRecentVersions } from "./recent";
describe('recent for magento-open-source', () => {
const project: Project = "magento-open-source";
test.each([
['2024-12-31T00:00:00Z', 'End of 2024', [
"magento/project-community-edition:2.4.4-p7",
"magento/project-community-edition:2.4.4-p8",
"magento/project-community-edition:2.4.4-p9",
"magento/project-community-edition:2.4.4-p10",
"magento/project-community-edition:2.4.4-p11",
"magento/project-community-edition:2.4.5-p6",
"magento/project-community-edition:2.4.5-p7",
"magento/project-community-edition:2.4.5-p8",
"magento/project-community-edition:2.4.5-p9",
"magento/project-community-edition:2.4.5-p10",
"magento/project-community-edition:2.4.6-p4",
"magento/project-community-edition:2.4.6-p5",
"magento/project-community-edition:2.4.6-p6",
"magento/project-community-edition:2.4.6-p7",
"magento/project-community-edition:2.4.6-p8",
"magento/project-community-edition:2.4.7",
"magento/project-community-edition:2.4.7-p1",
"magento/project-community-edition:2.4.7-p2",
"magento/project-community-edition:2.4.7-p3",
]],
['2025-04-08T00:00:00Z', 'The day Damien wrote a test.', [
"magento/project-community-edition:2.4.4-p9",
"magento/project-community-edition:2.4.4-p10",
"magento/project-community-edition:2.4.4-p11",
"magento/project-community-edition:2.4.4-p12",
"magento/project-community-edition:2.4.5-p8",
"magento/project-community-edition:2.4.5-p9",
"magento/project-community-edition:2.4.5-p10",
"magento/project-community-edition:2.4.5-p11",
"magento/project-community-edition:2.4.6-p6",
"magento/project-community-edition:2.4.6-p7",
"magento/project-community-edition:2.4.6-p8",
"magento/project-community-edition:2.4.6-p9",
"magento/project-community-edition:2.4.7-p1",
"magento/project-community-edition:2.4.7-p2",
"magento/project-community-edition:2.4.7-p3",
"magento/project-community-edition:2.4.7-p4",
]],
['2025-08-08T00:00:00Z', 'Day Before v2.4.5 EoL', [
"magento/project-community-edition:2.4.4-p10",
"magento/project-community-edition:2.4.4-p11",
"magento/project-community-edition:2.4.4-p12",
"magento/project-community-edition:2.4.4-p13",
"magento/project-community-edition:2.4.5-p9",
"magento/project-community-edition:2.4.5-p10",
"magento/project-community-edition:2.4.5-p11",
"magento/project-community-edition:2.4.5-p12",
"magento/project-community-edition:2.4.6-p7",
"magento/project-community-edition:2.4.6-p8",
"magento/project-community-edition:2.4.6-p9",
"magento/project-community-edition:2.4.6-p10",
"magento/project-community-edition:2.4.7-p2",
"magento/project-community-edition:2.4.7-p3",
"magento/project-community-edition:2.4.7-p4",
"magento/project-community-edition:2.4.7-p5",
"magento/project-community-edition:2.4.8",
]],
])(
'recent for %s',
(date, description ,result) => {
expect(
getRecentVersions(project, new Date(date), '360d')
).toEqual(result);
}
);
})
+31
View File
@@ -0,0 +1,31 @@
import { PackageMatrixVersion } from '../matrix/matrix-type';
import { getIndividualVersionsForProject } from "../versions/get-versions-for-project";
export const getRecentVersions = (project: string, date: Date, durationStr: string): string[] => {
const regex = /(?:(\d+)\s*y)?\s*(?:(\d+)\s*m)?\s*(?:(\d+)\s*d)?/i;
const match = durationStr.match(regex);
if (!match) {
throw new Error(`Invalid duration string: ${durationStr}`);
}
const years = parseInt(match[1] || "0", 10);
const months = parseInt(match[2] || "0", 10);
const days = parseInt(match[3] || "0", 10);
const allVersions = getIndividualVersionsForProject(project)
return Object.entries(<Record<string,PackageMatrixVersion>>allVersions)
.filter(([key, value]) => {
const dayOfRelease = new Date(value.release);
dayOfRelease.setSeconds(dayOfRelease.getSeconds() + 1);
const dateAfterRelease = new Date(value.release);
dateAfterRelease.setFullYear(dateAfterRelease.getFullYear() + years);
dateAfterRelease.setMonth(dateAfterRelease.getMonth() + months);
dateAfterRelease.setDate(dateAfterRelease.getDate() + days);
return date >= dayOfRelease && date <= dateAfterRelease;
})
.map(([key, value]) => key);
}
@@ -5,8 +5,9 @@ import nightlyJson from '../kind/special-versions/nightly.json';
import { getDayBefore } from '../nightly/get-day-before';
import { getCurrentlySupportedVersions } from "../kind/get-currently-supported";
import { amendMatrixForNext } from "../nightly/amend-matrix-for-next";
import { getRecentVersions } from "../kind/recent";
export const getMatrixForKind = (kind: string, project: string, versions = "") => {
export const getMatrixForKind = (kind: string, project: string, versions = "", recent_time_frame = '2y') => {
switch(kind){
case 'latest':
@@ -19,6 +20,8 @@ export const getMatrixForKind = (kind: string, project: string, versions = "") =
return getMatrixForVersions(project, Object.keys(getIndividualVersionsForProject(project)));
case 'custom':
return getMatrixForVersions(project, versions.split(","))
case 'recent':
return getMatrixForVersions(project, getRecentVersions(project, new Date(), recent_time_frame));
default:
throw new Error(`Unreachable kind: ${kind} discovered, please report to the maintainers.`);
}
@@ -72,85 +72,102 @@
"magento/project-community-edition:>=2.4.4 <2.4.5": {
"magento": "magento/project-community-edition:>=2.4.4 <2.4.5",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
"redis": "redis:6.2",
"varnish": "varnish:7.3",
"nginx": "nginx:1.22",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2022-04-12T00:00:00+0000",
"release": "2025-04-08T00:00:00+0000",
"eol": "2025-04-24T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.5 <2.4.6": {
"magento": "magento/project-community-edition:>=2.4.5 <2.4.6",
"php": 8.1,
"composer": "2.2.21",
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.11-management",
"redis": "redis:6.2",
"varnish": "varnish:7.1",
"nginx": "nginx:1.22",
"elasticsearch": "elasticsearch:7.17.28",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2023-08-08T00:00:00+0000",
"release": "2025-04-08T00:00:00+0000",
"eol": "2025-08-09T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.6 <2.4.7": {
"magento": "magento/project-community-edition:>=2.4.6 <2.4.7",
"php": 8.1,
"composer": "2.2.21",
"php": 8.2,
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.5.3",
"rabbitmq": "rabbitmq:3.9-management",
"redis": "redis:7.0",
"varnish": "varnish:7.3",
"nginx": "nginx:1.22",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2023-03-14T00:00:00+0000",
"release": "2025-04-08T00:00:00+0000",
"eol": "2026-03-14T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.7 <2.4.8": {
"magento": "magento/project-community-edition:>=2.4.7 <2.4.8",
"php": 8.3,
"composer": "2.7.4",
"mysql": "mariadb:10.6",
"elasticsearch": "opensearch:2.12.0",
"rabbitmq": "rabbitmq:3.12-management",
"redis": "redis:7.2",
"varnish": "varnish:7.4",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2024-04-09T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
},
"magento/project-community-edition": {
"magento": "magento/project-community-edition:>=2.4.7 <2.4.8",
"php": 8.3,
"composer": "2.7.4",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"rabbitmq": "rabbitmq:3.12-management",
"redis": "redis:7.2",
"varnish": "varnish:7.4",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2024-04-09T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
},
"magento/project-community-edition:next": {
"magento": "magento/project-community-edition:next",
"php": 8.3,
"composer": "2",
"mysql": "mariadb:10.6",
"elasticsearch": "elasticsearch:8.11.4",
"composer": "2.8.8",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.5",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2015-11-17T00:00:00+0000",
"release": "2025-04-08T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
},
"magento/project-community-edition:>=2.4.8 <2.4.9": {
"magento": "magento/project-community-edition:>=2.4.8 <2.4.9",
"php": 8.4,
"composer": "2.8.8",
"mysql": "mysql:8.4",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:4.0-management",
"redis": "redis:7.2",
"valkey": "valkey:8.0",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
},
"magento/project-community-edition": {
"magento": "magento/project-community-edition:>=2.4.8 <2.4.9",
"php": 8.4,
"composer": "2.8.8",
"mysql": "mysql:8.4",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:4.0-management",
"redis": "redis:7.2",
"valkey": "valkey:8.0",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
},
"magento/project-community-edition:next": {
"magento": "magento/project-community-edition:>=2.4.8 <2.4.9",
"php": 8.4,
"composer": "2.8.8",
"mysql": "mysql:8.4",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:4.0-management",
"redis": "redis:7.2",
"valkey": "valkey:8.0",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
}
}
@@ -361,6 +361,20 @@
"nginx": "nginx:1.22",
"os": "ubuntu-latest",
"release": "2025-02-11T00:00:00+0000",
"eol": "2025-04-07T23:59:59+0000"
},
"magento/project-community-edition:2.4.4-p13": {
"magento": "magento/project-community-edition:2.4.4-p13",
"php": 8.1,
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.5",
"rabbitmq": "rabbitmq:3.9-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2025-04-24T00:00:00+0000"
},
"magento/project-community-edition:2.4.5": {
@@ -529,6 +543,20 @@
"nginx": "nginx:1.22",
"os": "ubuntu-latest",
"release": "2025-02-11T00:00:00+0000",
"eol": "2025-04-07T23:59:59+0000"
},
"magento/project-community-edition:2.4.5-p12": {
"magento": "magento/project-community-edition:2.4.5-p12",
"php": 8.1,
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:7.17.28",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2025-08-09T00:00:00+0000"
},
"magento/project-community-edition:2.4.6": {
@@ -669,6 +697,20 @@
"nginx": "nginx:1.22",
"os": "ubuntu-latest",
"release": "2025-02-11T00:00:00+0000",
"eol": "2025-04-07T23:59:59+0000"
},
"magento/project-community-edition:2.4.6-p10": {
"magento": "magento/project-community-edition:2.4.6-p10",
"php": 8.2,
"composer": "2.2.25",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2026-03-14T00:00:00+0000"
},
"magento/project-community-edition:2.4.7": {
@@ -739,6 +781,35 @@
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-02-11T00:00:00+0000",
"eol": "2025-04-07T23:59:59+0000"
},
"magento/project-community-edition:2.4.7-p5": {
"magento": "magento/project-community-edition:2.4.7-p5",
"php": 8.3,
"composer": "2.8.8",
"mysql": "mysql:8.0",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:3.13-management",
"redis": "redis:7.2",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2027-04-09T00:00:00+0000"
},
"magento/project-community-edition:2.4.8": {
"magento": "magento/project-community-edition:2.4.8",
"php": 8.4,
"composer": "2.8.8",
"mysql": "mysql:8.4",
"elasticsearch": "elasticsearch:8.17.4",
"rabbitmq": "rabbitmq:4.0-management",
"redis": "redis:7.2",
"valkey": "valkey:8.0",
"varnish": "varnish:7.6",
"nginx": "nginx:1.26",
"os": "ubuntu-latest",
"release": "2025-04-08T00:00:00+0000",
"eol": "2028-04-09T00:00:00+0000"
}
}