DO-2039: Add opensearch-plugins input to php-quality-checks#175
Merged
Conversation
Service containers can't install plugins before they start, so projects needing OpenSearch plugins (e.g. Adobe Commerce needs analysis-icu and analysis-phonetic) had to rely on a custom prebuilt image. This adds an optional opensearch-plugins input: when set, the API/integration test jobs install the listed plugins into the search container and restart it before running tests. Defaults to empty, so existing consumers are unaffected.
zizmor flagged the inline template expansions in the plugin install steps as potential code injection. Route the input and container id through env instead of expanding them directly in the script.
AdamJHall
approved these changes
Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GitHub service containers can't run commands before startup, so projects that need OpenSearch plugins had to point
opensearch-imageat a custom prebuilt image (e.g.aligent/bitbucket-opensearch, which is no longer publicly pullable and broke cooldrive-magento's PR checks).This adds an optional
opensearch-pluginsinput (space-separated, same style asphp-extensions). When set, the integration/REST/GraphQL test jobs install the listed plugins into the search service container viadocker exec, restart it, and wait for it to come back before running tests.opensearch-plugin installresolves the plugin build matching the running OpenSearch version, so it composes withopensearch-versionwithout maintenance.Default is empty, so existing consumers are unaffected.
Example:
First consumer: aligent/cooldrive-magento#106 / #107, which currently fail Magento's install with
Unknown filter type [phonetic]on the stock OpenSearch image (Adobe Commerce needs analysis-icu + analysis-phonetic, matching its cloud services.yaml).