Skip to content

Fix module-ci artifact name and add module-config input#1065

Open
mikelittle wants to merge 1 commit into
masterfrom
fix-module-ci-artifact-name-and-module-config
Open

Fix module-ci artifact name and add module-config input#1065
mikelittle wants to merge 1 commit into
masterfrom
fix-module-ci-artifact-name-and-module-config

Conversation

@mikelittle
Copy link
Copy Markdown
Contributor

Summary

Two fixes to module-ci.yml that surfaced when altis-media's first GHA run failed Codeception:

  1. Artifact upload now sanitises / out of the composer package name. The previous template produced names like codecept-output-altis/media-php8.3, which actions/upload-artifact@v4 rejects (forward slashes are not allowed in artifact names). The step is if: failure(), so the bug only surfaced when Codeception itself failed.
  2. New optional module-config input that deep-merges a caller-supplied JSON snippet into extra.altis.modules in the test-root composer.json. Mirrors how the workflow already injects the cms default-theme. Lets a caller enable opt-in module features for the CI run without per-test runtime injection — e.g. altis-media will pass {"media":{"private-media":true}} so its acceptance tests can find the private-media UI affordances.

Refs humanmade/altis-media#458.

Test plan

  • Self-CI on this PR passes
  • After merge, re-run altis-media#458 (which will be updated to pass module-config) and confirm:
    • The acceptance suite finds the "Make Public" affordances (feature is enabled)
    • If Codeception fails again, the upload-artifact step succeeds (no "name is not valid" error)

🤖 Generated with Claude Code

mikelittle added a commit to humanmade/altis-media that referenced this pull request May 19, 2026
The acceptance tests in tests/acceptance/PrivateMediaCest.php require
the private-media feature to be enabled in the test environment — the
feature is opt-in and the file's docblock explicitly rejects per-test
runtime injection.

Pass the new `module-config` input on altis-dev-tools' Module CI
workflow so the test root's composer.json has
`extra.altis.modules.media.private-media = true`. Also temporarily
pins the workflow to the humanmade/altis-dev-tools#1065 branch SHA
where that input was added; re-point to @master (or the merge SHA)
once #1065 lands.

Also picks up the artifact-name slash fix from #1065, which is why
the previous failed run could not even upload its codeception output.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two fixes to module-ci.yml that surfaced when altis-media's first GHA
run failed Codeception:

1. Artifact upload now sanitises '/' out of the composer package name.
   The previous template produced names like 'codecept-output-altis/media-php8.3',
   which actions/upload-artifact@v4 rejects (forward slashes are not allowed
   in artifact names). The step is `if: failure()`, so the bug only
   surfaced when Codeception itself failed.

2. New optional `module-config` input lets a caller pass a JSON snippet
   that is deep-merged into `extra.altis.modules` in the test-root
   composer.json. Used to enable opt-in module features for the CI run
   without per-test runtime injection — e.g. altis-media will pass
   `{"media":{"private-media":true}}` so its acceptance tests can find
   the private-media UI affordances.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mikelittle mikelittle force-pushed the fix-module-ci-artifact-name-and-module-config branch from 1cfc581 to 90a5e3b Compare May 19, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant