Skip to content

[MAINT] Github Actions Reunification - setup-install #350

@damienwebdev

Description

@damienwebdev

Action: setup-install (new)

Status: 🔴 New action
Target: setup-install/action.yml


Feature request

Title: feat(setup-install): new action to run bin/magento setup:install from supported-version services matrix

Problem: After supported-version outputs a matrix with a services key, callers still have to manually translate each service (mysql, opensearch, rabbitmq, redis/valkey) into the correct bin/magento setup:install flags. This is repetitive, error-prone, and diverges across repos.

Solution: An action that accepts the services JSON from the matrix entry and the standard Magento install parameters, then derives and runs bin/magento setup:install with all service-specific flags automatically.


Services → setup:install flag mapping

Derived from the hardcoded credentials in supported-version/src/services/service-config.ts:

MySQL

--db-host=127.0.0.1
--db-port=3306
--db-name=magento_integration_tests
--db-user=user
--db-password=password

OpenSearch

--search-engine=opensearch
--opensearch-host=127.0.0.1
--opensearch-port=9200

Elasticsearch (version-aware)

Detect major version from image tag (e.g. elasticsearch:8.11.48, elasticsearch:7.17.07):

--search-engine=elasticsearch<major>
--elasticsearch-host=127.0.0.1
--elasticsearch-port=9200

RabbitMQ

--amqp-host=127.0.0.1
--amqp-port=5672
--amqp-user=guest
--amqp-password=guest

Redis / Valkey (identical flags, both bind to 6379)

--session-save=redis
--session-save-redis-host=127.0.0.1
--session-save-redis-port=6379
--cache-backend=redis
--cache-backend-redis-server=127.0.0.1
--cache-backend-redis-port=6379

Action design

Inputs

Input Required Default Description
services true JSON string of the services key from the supported-version matrix entry
path false '.' The path to the Magento application.
extra_args false "" Any additional raw setup:install flags to append

Outputs

Output Description
command The full bin/magento setup:install command that was run

Example usage

- uses: mage-os/github-actions/setup-install@main
  with:
    services: ${{ toJSON(matrix.services) }}

Internal workflow impact

Once created, _internal-setup-magento.yaml and integration.yaml can replace their inline setup:install blocks with this action.


Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions