Compare commits

...

7 Commits

Author SHA1 Message Date
GrayBot 62d2aec976 chore: release 7.0.0 (#230) 2026-05-01 07:52:47 -04:00
kristof-ringleff 771dd05439 fix(cache-magento): address set-output deprecation (#231) 2026-04-28 21:54:56 -04:00
Ryan Hoerr f8036173e1 fix(supported-version): filter uninstallable versions from usable kind (#319)
Exclude versions that cannot be installed due to security or dependency issues:
- Magento 2.4.2 through 2.4.3-p3: require composer <=2.1, which is insecure
- Mage-OS 2.2.1: blocked by webonyx/graphql-php security advisory
2026-04-28 10:21:08 -04:00
Ryan Hoerr bbecc7f5f9 feat(supported-version): update for Mage-OS 2.2.2 (#317) 2026-04-28 10:19:20 -04:00
Ryan Hoerr db1267a94b chore(supported-version): Add supported version for Mage-OS 2.2.1 (#316) 2026-04-28 10:15:31 -04:00
Damien Retzinger 90babb16bf chore: promote release 7.0.0
Release-As: 7.0.0
2026-04-28 10:07:35 -04:00
GrayBot 93c0b480e2 chore: restore internal action refs to @main (#229) 2026-04-28 09:56:18 -04:00
16 changed files with 164 additions and 41 deletions
+8 -8
View File
@@ -44,7 +44,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0
id: setup-magento id: setup-magento
with: with:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
@@ -54,7 +54,7 @@ jobs:
magento_repository: ${{ inputs.magento_repository }} magento_repository: ${{ inputs.magento_repository }}
composer_auth: ${{ secrets.composer_auth }} composer_auth: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0
with: with:
composer_cache_key: ${{ inputs.composer_cache_key }} composer_cache_key: ${{ inputs.composer_cache_key }}
@@ -104,7 +104,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0
id: setup-magento id: setup-magento
with: with:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
@@ -114,7 +114,7 @@ jobs:
magento_repository: ${{ inputs.magento_repository }} magento_repository: ${{ inputs.magento_repository }}
composer_auth: ${{ secrets.composer_auth }} composer_auth: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0
with: with:
composer_cache_key: ${{ inputs.composer_cache_key }} composer_cache_key: ${{ inputs.composer_cache_key }}
@@ -161,7 +161,7 @@ jobs:
tools: composer:v${{ matrix.composer }} tools: composer:v${{ matrix.composer }}
coverage: none coverage: none
- uses: graycoreio/github-actions-magento2/coding-standard@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/coding-standard@v7.0.0
with: with:
path: ${{ inputs.path }} path: ${{ inputs.path }}
composer_auth: ${{ secrets.composer_auth }} composer_auth: ${{ secrets.composer_auth }}
@@ -175,7 +175,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
- uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/setup-magento@v7.0.0
id: setup-magento id: setup-magento
with: with:
php-version: ${{ matrix.php }} php-version: ${{ matrix.php }}
@@ -185,7 +185,7 @@ jobs:
magento_repository: ${{ inputs.magento_repository }} magento_repository: ${{ inputs.magento_repository }}
composer_auth: ${{ secrets.composer_auth }} composer_auth: ${{ secrets.composer_auth }}
- uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/cache-magento@v7.0.0
with: with:
composer_cache_key: ${{ inputs.composer_cache_key }} composer_cache_key: ${{ inputs.composer_cache_key }}
@@ -210,7 +210,7 @@ jobs:
COMPOSER_AUTH: ${{ secrets.composer_auth }} COMPOSER_AUTH: ${{ secrets.composer_auth }}
COMPOSER_MIRROR_PATH_REPOS: 1 COMPOSER_MIRROR_PATH_REPOS: 1
- uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0
id: magento-version id: magento-version
with: with:
working-directory: ${{ steps.setup-magento.outputs.path }} working-directory: ${{ steps.setup-magento.outputs.path }}
+1 -1
View File
@@ -82,7 +82,7 @@ jobs:
COMPOSER_AUTH: ${{ secrets.composer_auth }} COMPOSER_AUTH: ${{ secrets.composer_auth }}
name: Create Magento ${{ matrix.magento }} Project name: Create Magento ${{ matrix.magento }} Project
- uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0
id: magento-version id: magento-version
with: with:
working-directory: ${{ inputs.magento_directory }} working-directory: ${{ inputs.magento_directory }}
+1 -1
View File
@@ -1 +1 @@
{".":"7.0.0-rc.0"} {".":"7.0.0"}
+18
View File
@@ -2,6 +2,24 @@
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. 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.
## [7.0.0](https://github.com/graycoreio/github-actions-magento2/compare/v7.0.0-rc.0...v7.0.0) (2026-04-29)
### Features
* **supported-version:** update for Mage-OS 2.2.2 ([#317](https://github.com/graycoreio/github-actions-magento2/issues/317)) ([bbecc7f](https://github.com/graycoreio/github-actions-magento2/commit/bbecc7f5f9e4ddfdf5b41eb17fac6db1b30b56f0))
### Bug Fixes
* **cache-magento:** address `set-output` deprecation ([#231](https://github.com/graycoreio/github-actions-magento2/issues/231)) ([771dd05](https://github.com/graycoreio/github-actions-magento2/commit/771dd054395a0e0a33e2d712d9793ca8322173e9))
* **supported-version:** filter uninstallable versions from usable kind ([#319](https://github.com/graycoreio/github-actions-magento2/issues/319)) ([f803617](https://github.com/graycoreio/github-actions-magento2/commit/f8036173e143ab5d13147c136e0d9e0c6bbb829b))
### Miscellaneous Chores
* promote release 7.0.0 ([90babb1](https://github.com/graycoreio/github-actions-magento2/commit/90babb16bfb28ca1953c95edb2301c9090b52f67))
## [7.0.0-rc.0](https://github.com/graycoreio/github-actions-magento2/compare/v6.0.0...v7.0.0-rc.0) (2026-04-28) ## [7.0.0-rc.0](https://github.com/graycoreio/github-actions-magento2/compare/v6.0.0...v7.0.0-rc.0) (2026-04-28)
+2 -2
View File
@@ -22,11 +22,11 @@ runs:
run: | run: |
echo "dir=$(composer config cache-files-dir --global)" >> $GITHUB_OUTPUT echo "dir=$(composer config cache-files-dir --global)" >> $GITHUB_OUTPUT
- run: echo "::set-output name=version::$(php -v | awk 'NR==1{print $2}')" - run: echo "version=$(php -v | awk 'NR==1{print $2}')" >> "$GITHUB_OUTPUT"
shell: bash shell: bash
id: cache-magento-get-php-version id: cache-magento-get-php-version
- run: echo "::set-output name=version::$(composer --version | awk '{print $3}')" - run: echo "version=$(composer --version | awk '{print $3}')" >> "$GITHUB_OUTPUT"
shell: bash shell: bash
name: Compute Composer Version name: Compute Composer Version
id: cache-magento-get-composer-version id: cache-magento-get-composer-version
+2 -2
View File
@@ -52,12 +52,12 @@ runs:
fi fi
- name: Get Composer Version - name: Get Composer Version
uses: graycoreio/github-actions-magento2/get-composer-version@v7.0.0-rc.0 uses: graycoreio/github-actions-magento2/get-composer-version@v7.0.0
id: get-composer-version id: get-composer-version
if: steps.check-installed.outputs.installed != 'true' if: steps.check-installed.outputs.installed != 'true'
- name: Check if allow-plugins option is available for this version of composer - name: Check if allow-plugins option is available for this version of composer
uses: graycoreio/github-actions-magento2/semver-compare@v7.0.0-rc.0 uses: graycoreio/github-actions-magento2/semver-compare@v7.0.0
id: is-allow-plugins-available id: is-allow-plugins-available
if: steps.check-installed.outputs.installed != 'true' if: steps.check-installed.outputs.installed != 'true'
with: with:
+1 -1
View File
@@ -9,7 +9,7 @@ inputs:
runs: runs:
using: "composite" using: "composite"
steps: steps:
- uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/get-magento-version@v7.0.0
id: init-magento-get-magento-version id: init-magento-get-magento-version
with: with:
working-directory: ${{ inputs.magento_directory }} working-directory: ${{ inputs.magento_directory }}
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "@graycoreio/github-actions-magento2", "name": "@graycoreio/github-actions-magento2",
"version": "7.0.0-rc.0", "version": "7.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@graycoreio/github-actions-magento2", "name": "@graycoreio/github-actions-magento2",
"version": "7.0.0-rc.0", "version": "7.0.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.11.1" "@actions/core": "^1.11.1"
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@graycoreio/github-actions-magento2", "name": "@graycoreio/github-actions-magento2",
"version": "7.0.0-rc.0", "version": "7.0.0",
"description": "Github Actions for Magento 2", "description": "Github Actions for Magento 2",
"scripts": { "scripts": {
"test": "cd supported-version && npm run test && cd -", "test": "cd supported-version && npm run test && cd -",
+1 -1
View File
@@ -90,7 +90,7 @@ runs:
env: env:
COMPOSER_AUTH: ${{ inputs.composer_auth }} COMPOSER_AUTH: ${{ inputs.composer_auth }}
- uses: graycoreio/github-actions-magento2/fix-magento-install@v7.0.0-rc.0 - uses: graycoreio/github-actions-magento2/fix-magento-install@v7.0.0
name: Fix Magento Out of Box Install Issues name: Fix Magento Out of Box Install Issues
with: with:
magento_directory: ${{ steps.setup-magento-compute-directory.outputs.MAGENTO_DIRECTORY }} magento_directory: ${{ steps.setup-magento-compute-directory.outputs.MAGENTO_DIRECTORY }}
+13 -13
View File
File diff suppressed because one or more lines are too long
@@ -132,6 +132,12 @@ describe('getCurrentlySupportedVersions for mage-os', () => {
['2025-09-09T00:00:01Z', 'Release of 1.3.1', [ ['2025-09-09T00:00:01Z', 'Release of 1.3.1', [
'mage-os/project-community-edition:1.3.1', 'mage-os/project-community-edition:1.3.1',
]], ]],
['2026-03-10T00:00:01Z', 'Release of 2.2.0', [
'mage-os/project-community-edition:2.2.0',
]],
['2026-04-15T00:00:01Z', 'Release of 2.2.2', [
'mage-os/project-community-edition:2.2.2',
]],
])( ])(
'supportedVersions for %s', 'supportedVersions for %s',
(date, description ,result) => { (date, description ,result) => {
@@ -50,4 +50,46 @@ describe('getUsableVersions for magento-open-source', () => {
expect(versions).not.toContain('magento/project-community-edition:2.3.7-p3'); expect(versions).not.toContain('magento/project-community-edition:2.3.7-p3');
expect(versions).toContain('magento/project-community-edition:2.4.6'); expect(versions).toContain('magento/project-community-edition:2.4.6');
}); });
it('should filter out uninstallable Magento 2.4.2.x and 2.4.3.x versions', () => {
mockGetVersions.mockReturnValue({
'magento/project-community-edition:2.4.2': { composer: '2.2.21' },
'magento/project-community-edition:2.4.2-p1': { composer: '2.2.21' },
'magento/project-community-edition:2.4.2-p2': { composer: '2.2.21' },
'magento/project-community-edition:2.4.3': { composer: '2.2.21' },
'magento/project-community-edition:2.4.3-p1': { composer: '2.2.21' },
'magento/project-community-edition:2.4.3-p2': { composer: '2.2.21' },
'magento/project-community-edition:2.4.3-p3': { composer: '2.2.21' },
'magento/project-community-edition:2.4.4': { composer: '2.2.21' }
});
const versions = getUsableVersions(project);
expect(versions).not.toContain('magento/project-community-edition:2.4.2');
expect(versions).not.toContain('magento/project-community-edition:2.4.2-p1');
expect(versions).not.toContain('magento/project-community-edition:2.4.2-p2');
expect(versions).not.toContain('magento/project-community-edition:2.4.3');
expect(versions).not.toContain('magento/project-community-edition:2.4.3-p1');
expect(versions).not.toContain('magento/project-community-edition:2.4.3-p2');
expect(versions).not.toContain('magento/project-community-edition:2.4.3-p3');
expect(versions).toContain('magento/project-community-edition:2.4.4');
});
});
describe('getUsableVersions for mage-os', () => {
const project: Project = "mage-os";
beforeEach(() => {
mockGetVersions.mockReset();
});
it('should filter out mage-os 2.2.1 due to security advisory', () => {
mockGetVersions.mockReturnValue({
'mage-os/project-community-edition:2.2.0': { composer: '2.9.3' },
'mage-os/project-community-edition:2.2.1': { composer: '2.9.3' }
});
const versions = getUsableVersions(project);
expect(versions).not.toContain('mage-os/project-community-edition:2.2.1');
expect(versions).toContain('mage-os/project-community-edition:2.2.0');
});
}); });
+23
View File
@@ -2,6 +2,24 @@ import { PackageMatrixVersion } from '../matrix/matrix-type';
import { getIndividualVersionsForProject } from "../versions/get-versions-for-project"; import { getIndividualVersionsForProject } from "../versions/get-versions-for-project";
import semver from 'semver'; import semver from 'semver';
/**
* Versions that are known to be uninstallable and should be excluded from the usable set.
* Each entry includes a reason for documentation purposes.
*/
const uninstallableVersions: Record<string, string> = {
// magento/composer-root-update-plugin ~1.1 requires composer/composer <=2.1,
// but all composer versions <=2.1 are insecure and cannot be used.
'magento/project-community-edition:2.4.2': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.2-p1': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.2-p2': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.3': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.3-p1': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.3-p2': 'requires insecure composer <=2.1',
'magento/project-community-edition:2.4.3-p3': 'requires insecure composer <=2.1',
// Security advisory in webonyx/graphql-php prevents installation.
'mage-os/project-community-edition:2.2.1': 'uninstallable due to webonyx/graphql-php security advisory',
};
export const getUsableVersions = (project: string): string[] => { export const getUsableVersions = (project: string): string[] => {
const allVersions = getIndividualVersionsForProject(project) const allVersions = getIndividualVersionsForProject(project)
return Object.entries(<Record<string,PackageMatrixVersion>>allVersions) return Object.entries(<Record<string,PackageMatrixVersion>>allVersions)
@@ -17,6 +35,11 @@ export const getUsableVersions = (project: string): string[] => {
return false; return false;
} }
// Exclude versions known to be uninstallable.
if (key in uninstallableVersions) {
return false;
}
return true; return true;
}) })
.map(([key, value]) => key); .map(([key, value]) => key);
@@ -2,30 +2,32 @@
"mage-os/project-community-edition": { "mage-os/project-community-edition": {
"magento": "mage-os/project-community-edition", "magento": "mage-os/project-community-edition",
"php": 8.4, "php": 8.4,
"composer": "2.9.5", "composer": "2.9.7",
"mysql": "mysql:8.4", "mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3", "opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management", "rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0", "valkey": "valkey/valkey:8.0",
"redis": "redis:7.2",
"varnish": "varnish:7.7", "varnish": "varnish:7.7",
"nginx": "nginx:1.28", "nginx": "nginx:1.28",
"os": "ubuntu-latest", "os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000", "release": "2026-04-15T00:00:00+0000",
"eol": "2029-03-10T00:00:00+0000" "eol": "2029-04-15T00:00:00+0000"
}, },
"mage-os/project-community-edition:next": { "mage-os/project-community-edition:next": {
"magento": "mage-os/project-community-edition:next", "magento": "mage-os/project-community-edition:next",
"php": 8.4, "php": 8.4,
"composer": "2.9.5", "composer": "2.9.7",
"mysql": "mysql:8.4", "mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3", "opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management", "rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0", "valkey": "valkey/valkey:8.0",
"redis": "redis:7.2",
"varnish": "varnish:7.7", "varnish": "varnish:7.7",
"nginx": "nginx:1.28", "nginx": "nginx:1.28",
"os": "ubuntu-latest", "os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000", "release": "2026-04-15T00:00:00+0000",
"eol": "2029-03-10T00:00:00+0000" "eol": "2029-04-15T00:00:00+0000"
}, },
"mage-os/project-community-edition:>=1.0 <1.1": { "mage-os/project-community-edition:>=1.0 <1.1": {
"magento": "mage-os/project-community-edition:>=1.0 <1.1", "magento": "mage-os/project-community-edition:>=1.0 <1.1",
@@ -119,10 +121,11 @@
"opensearch": "opensearchproject/opensearch:3", "opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management", "rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0", "valkey": "valkey/valkey:8.0",
"redis": "redis:7.2",
"varnish": "varnish:7.7", "varnish": "varnish:7.7",
"nginx": "nginx:1.28", "nginx": "nginx:1.28",
"os": "ubuntu-latest", "os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000", "release": "2026-03-10T00:00:00+0000",
"eol": "2029-03-10T00:00:00+0000" "eol": "2029-04-15T00:00:00+0000"
} }
} }
@@ -222,6 +222,37 @@
"nginx": "nginx:1.28", "nginx": "nginx:1.28",
"os": "ubuntu-latest", "os": "ubuntu-latest",
"release": "2026-03-10T00:00:00+0000", "release": "2026-03-10T00:00:00+0000",
"eol": "2029-03-10T00:00:00+0000" "eol": "2026-03-18T00:00:00+0000"
},
"mage-os/project-community-edition:2.2.1": {
"magento": "mage-os/project-community-edition:2.2.1",
"upstream": "2.4.8-p4",
"php": 8.4,
"composer": "2.9.5",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0",
"varnish": "varnish:7.7",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-03-18T00:00:00+0000",
"eol": "2026-04-15T00:00:00+0000"
},
"mage-os/project-community-edition:2.2.2": {
"magento": "mage-os/project-community-edition:2.2.2",
"upstream": "2.4.8-p4",
"php": 8.4,
"composer": "2.9.7",
"mysql": "mysql:8.4",
"opensearch": "opensearchproject/opensearch:3",
"rabbitmq": "rabbitmq:4.1-management",
"valkey": "valkey/valkey:8.0",
"redis": "redis:7.2",
"varnish": "varnish:7.7",
"nginx": "nginx:1.28",
"os": "ubuntu-latest",
"release": "2026-04-15T00:00:00+0000",
"eol": "2029-04-15T00:00:00+0000"
} }
} }