feat(supported-version): add support for MageOS Minimal edition

This commit is contained in:
Damien Retzinger
2026-05-25 09:11:52 -04:00
parent 1e63c019ed
commit befe0807f7
12 changed files with 95 additions and 24 deletions
+2 -1
View File
@@ -14,7 +14,7 @@ See the [action.yml](./action.yml)
| Input | Description | Required | Default |
|-----------------| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |-----------------------|
| kind | The "kind" of support you're targeting for your package. See [Kinds](#kinds). | false | 'currently-supported' |
| project | The project to return the supported versions for. Allowed values are `mage-os` and `magento-open-source` | false | 'magento-open-source' |
| project | The project to return the supported versions for. Allowed values are `mage-os`, `mage-os-minimal`, and `magento-open-source` | false | 'magento-open-source' |
| custom_versions | The versions you want to support, as a comma-separated string, i.e. 'magento/project-community-edition:2.3.7-p3, magento/project-community-edition:2.4.2-p2' | false | '' |
| recent_time_frame | The time frame (from today) used when `kind` is `recent`. Combination of years (y), months (m), and days (d), e.g. `2y 2m 2d`. | false | '2y' |
| include_services | Whether to include a `services` key in each matrix entry with GitHub Actions service container configurations for MySQL, search engine, RabbitMQ, and cache. | false | 'true' |
@@ -31,6 +31,7 @@ See the [action.yml](./action.yml)
## Projects
- `mage-os`
- `mage-os-minimal`
- `magento-open-source` (default)
## Service preferences
+1 -1
View File
@@ -9,7 +9,7 @@ inputs:
default: "currently-supported"
project:
required: false
description: "The project to return the supported versions for. Allowed values are `mage-os` and `magento-open-source`"
description: "The project to return the supported versions for. Allowed values are `mage-os`, `mage-os-minimal`, and `magento-open-source`"
# The default value is what it is to keep backward compatibility
default: "magento-open-source"
custom_versions:
+21 -21
View File
File diff suppressed because one or more lines are too long
@@ -1,4 +1,5 @@
{
"mage-os": ["mage-os/project-community-edition"],
"mage-os-minimal": ["mage-os/project-minimal-edition"],
"magento-open-source": ["magento/project-community-edition"]
}
@@ -1,4 +1,5 @@
{
"mage-os": ["mage-os/project-community-edition:next"],
"mage-os-minimal": ["mage-os/project-minimal-edition:next"],
"magento-open-source": ["magento/project-community-edition:next"]
}
@@ -3,6 +3,7 @@
*/
export const KNOWN_PROJECTS = {
"mage-os": true,
"mage-os-minimal": true,
"magento-open-source": true,
}
@@ -4,6 +4,7 @@ describe('validateProject', () => {
it('returns `true` if its a valid project', () => {
expect(validateProject("magento-open-source")).toBe(true);
expect(validateProject("mage-os")).toBe(true);
expect(validateProject("mage-os-minimal")).toBe(true);
});
it('throws a helpful exception if it is an invalid project', () => {
@@ -4,6 +4,7 @@ import {Project} from "../projects";
describe('isKnownProject', () => {
it('returns `true` for known projects', () => {
expect(isKnownProject("mage-os")).toBe(true)
expect(isKnownProject("mage-os-minimal")).toBe(true)
expect(isKnownProject("magento-open-source")).toBe(true)
});
@@ -5,6 +5,7 @@ describe('getIndividialVersionsForProject', () => {
it('returns individual versions matrix for magento-open-source', () => {
expect(Object.keys(getIndividualVersionsForProject("magento-open-source")).length).toBeGreaterThan(0)
expect(Object.keys(getIndividualVersionsForProject("mage-os")).length).toBeGreaterThan(0)
expect(Object.keys(getIndividualVersionsForProject("mage-os-minimal")).length).toBeGreaterThan(0)
})
it('throws error if no individual versions are specified for given project', () => {
@@ -16,6 +17,7 @@ describe('getCompositeVersionsForProject', () => {
it('returns composite versions matrix for magento-open-source', () => {
expect(Object.keys(getCompositeVersionsForProject("magento-open-source")).length).toBeGreaterThan(0)
expect(Object.keys(getCompositeVersionsForProject("mage-os")).length).toBeGreaterThan(0)
expect(Object.keys(getCompositeVersionsForProject("mage-os-minimal")).length).toBeGreaterThan(0)
})
it('throws error if no composite versions are specified for given project', () => {
@@ -3,11 +3,13 @@ import { PackageMatrixVersion } from "../matrix/matrix-type";
const individual = {
'mage-os': require('./mage-os/individual.json'),
'mage-os-minimal': require('./mage-os-minimal/individual.json'),
'magento-open-source': require('./magento-open-source/individual.json')
}
const composite = {
'mage-os': require('./mage-os/composite.json'),
'mage-os-minimal': require('./mage-os-minimal/composite.json'),
'magento-open-source': require('./magento-open-source/composite.json')
}
@@ -0,0 +1,44 @@
{
"mage-os/project-minimal-edition": {
"magento": "mage-os/project-minimal-edition",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-19T00:00:00+0000",
"eol": "2029-05-19T00:00:00+0000"
},
"mage-os/project-minimal-edition:next": {
"magento": "mage-os/project-minimal-edition:next",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-19T00:00:00+0000",
"eol": "2029-05-19T00:00:00+0000"
},
"mage-os/project-minimal-edition:>=3.0 <3.1": {
"magento": "mage-os/project-minimal-edition:>=3.0 <3.1",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-19T00:00:00+0000",
"eol": "2029-05-19T00:00:00+0000"
}
}
@@ -0,0 +1,17 @@
{
"mage-os/project-minimal-edition:3.0.0": {
"magento": "mage-os/project-minimal-edition:3.0.0",
"upstream": "2.4.9",
"php": 8.5,
"composer": "2.9.8",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.2-management",
"valkey": "valkey/valkey:9",
"varnish": "varnish:8",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-05-19T00:00:00+0000",
"eol": "2029-05-19T00:00:00+0000"
}
}