-
Notifications
You must be signed in to change notification settings - Fork 20
Added site install recipes. #1428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (13)
⛔ Files ignored due to path filters (1)
You can disable this status message by setting the WalkthroughAdds Drupal version/profile environment variables, a drupal/cms composer dependency and recipe allowlist updates, Ahoy commands and a CircleCI job for Drupal CMS, includes recipes in Docker build context, updates VCS/docker ignore rules, and adds many civictheme recipe assets (views, files, media, nodes, recipe metadata). Changes
Sequence Diagram(s)sequenceDiagram
participant Dev as Developer (PR)
participant Repo as Repository
participant CI as CircleCI
participant Docker as Docker build
participant Ahoy as Ahoy CLI
participant Provision as Provision script
rect #E8F0FF
Dev->>Repo: add env vars, composer changes, Dockerfile updates, recipes (views/files/media/nodes), CI job, Ahoy commands, ignore updates
end
rect #F0FFF0
CI->>Docker: build CLI images (now include /app/recipes)
Docker->>Repo: include recipes in build context
CI->>Repo: composer install (includes drupal/cms)
end
rect #FFF8E6
Ahoy->>Provision: run provision-cms / provision-11 (env: DRUPAL_PROFILE + DRUPAL_VERSION)
Provision->>Repo: import recipe content (views, files, media, nodes) into site build
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 8
🧹 Nitpick comments (8)
recipes/civictheme_content_generated_static/content/media/9ce87d83-eb80-4430-9925-93a55af3caae.yml (1)
38-42: Alt text and dimensions — same notes as above.
- Provide descriptive alt (or empty if decorative).
- Verify 1552×846 matches the source file.
recipes/civictheme_content_generated_static/content/media/f82c8bd7-bd96-4a69-826b-0f3d5c333996.yml (1)
38-42: Alt text is placeholder; width/height look atypical (1550×500) — verify.Check that the referenced image actually has these dimensions and adjust if needed; update alt accordingly.
recipes/civictheme_content_generated_static/content/media/2446bb9b-e26d-44c3-94c0-7ef6edf4a605.yml (1)
13-15: Author and timestamp choices — confirm intent and reproducibility.
uid: 0makes the media owned by Anonymous; confirm this is desired for editorial workflows.createduses a point-in-time value; if this content is regenerated, timestamps may churn diffs.Optionally set a fixed epoch for generated content or omit
createdacross generated items for reproducible exports.Also applies to: 19-21
recipes/civictheme_content_generated_static/content/node/00f7eecc-4a61-4a18-a576-26eec6eec844.yml (3)
39-42: Alias is extremely long — consider shortening for UX/SEO.This alias is ~160+ chars and hard to read. Consider a concise, human-friendly path.
97-101: Redundant list limit whenunlimited.With
field_c_p_list_limit_type: unlimited, thefield_c_p_list_limit: 0is redundant.Drop the numeric limit for clarity.
8-11: Author = Anonymous and fixed created date — verify policy.Using
revision_uid/uid: 0and fixedcreatedis fine for generated content, but confirm this matches your content ownership policy and reproducibility expectations.Consider a dedicated “Content Seeder” user or omit
created.Also applies to: 17-19, 24-25
recipes/civictheme_content_generated_static/content/node/07bef1c1-03e3-4d7c-8a3b-ae69f02f5ab4.yml (1)
25-27: Created timestamp reproducibility.Same note as other generated content: consider a fixed epoch or omit
createdto avoid churn across regenerations.recipes/civictheme_content_generated_static/content/node/1fdca8aa-648f-4e51-80c9-f87bc8b57131.yml (1)
140-140: Empty text “format” values — set an explicit text format or confirm field config.These are blank. If the field uses a text format, set one (e.g., civictheme_rich_text or plain_text); if the field type is text without format, ensure that’s how the field is configured, otherwise imports may fail.
Example patch (choose the correct format per your site):
- format: '' + format: civictheme_rich_textAlso applies to: 179-179, 218-218, 257-257
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (22)
composer.lockis excluded by!**/*.lockrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_10_libe.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_1_accu.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_2_earu.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_3_esti.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_4_atcu.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_5_idim.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_6_haru.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_7_aspe.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_8_atqu.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_jpg_file_9_cons.jpgis excluded by!**/*.jpgrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_10_faci.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_1_duci.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_2_aute.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_3_etit.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_4_alia.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_5_dolo.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_6_blan.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_7_dele.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_8_dele.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_9_anim.pdfis excluded by!**/*.pdfrecipes/civictheme_content_generated_static/content/file/generic.pngis excluded by!**/*.png
📒 Files selected for processing (107)
.env(1 hunks).env.local.default(1 hunks)composer.json(1 hunks)recipes/civictheme_content_generated_static/config/views.view.cs_generated_content_list.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/28b82ba2-601d-4e12-b08f-386962c45545.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/2a53199e-3cd3-419c-b044-16a509602752.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/34a62a8e-2096-4249-b6b3-0aa557b7de00.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/3d72e253-d3fd-4dae-a9d8-ce5005749650.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/3e8fcfa3-5b62-4d17-9505-27dc9be21047.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/5322e72b-5f0f-44ba-ad05-ee64380e1f57.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/5548db1e-3094-4bc5-8401-9700b5b4aad3.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/62e4d359-347d-4f5f-af17-a153ad83a7a9.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/8212ed57-5c2a-4e77-b905-fcf768dc49ae.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/9165e3f8-2cc5-4804-a53f-6382dd53ef17.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/93186753-3e96-47ef-b1f3-ff1cdc476ba9.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/9382498c-2678-4e74-92a2-f64b57e11f36.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/94a78c4c-833d-4bd0-9fef-044175cfefb7.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/a76f202a-2bd7-4af1-937c-1835b9257d81.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/aef9f3cd-f5ab-47e6-91c8-a8ba358f7e36.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/c35f8e96-1cf2-4588-96d5-9a1979465e44.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/c96dee56-2d41-4b6d-9fc2-914713f06c1a.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/cb0748f0-7bee-4c5f-a00d-01cda40001b3.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/e2f86086-0269-4ad0-92c1-96670e613c18.yml(1 hunks)recipes/civictheme_content_generated_static/content/file/f1e88e78-5f38-4afb-861b-a9af59e4526e.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/09d61f69-746d-42d1-9d8f-78c256e9595e.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/11323430-2ee9-444e-9cc3-70547ca77464.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/11b09eaa-ae94-48db-84f7-c6431a1f5e78.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/1590793c-8c13-4a67-8607-dd9aef6115e7.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/1dc694da-913b-4097-8f2b-822661c97338.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/1f232b36-2259-4825-b989-76ab776794c3.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/238babdd-3c76-4b96-aa60-952cf44fe689.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/2446bb9b-e26d-44c3-94c0-7ef6edf4a605.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/2b11cf24-4747-4d7a-bc8c-a7ae8ce2ee3b.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/2b33fc27-dd4a-427e-a3a2-4b3ace382ca4.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/2daf48b1-b1d6-4beb-ad81-e42a55efd1f0.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/3378938b-d96c-4291-8fbb-f04208984625.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/3b356dee-7c02-433a-8ad8-e2298a720e7f.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/3c65c30d-319f-402c-9d42-dbedc799eb34.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/434236aa-1a77-474d-9a31-7305ffb3e9d5.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/48632cac-2e8d-436d-9938-2ccdf0efa903.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/4b8d684d-71b5-4b32-aff7-c47f2c054cf8.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/4e188906-d5cc-40ea-bb76-92cea2bb5ee9.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/51c49b4b-50a5-4610-a47d-5f27735a2ef6.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/551b075c-af70-4521-9de7-ec5e487c40f8.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/59d72cfa-f37d-4689-99e8-cc68f387fbb9.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/6c4156cb-6b4d-4467-a7a0-47a90be20291.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/6e26b476-a047-4547-bf86-2c73dd48f843.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/70602d7c-8746-4807-a288-32eb7fc32ef6.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/71e0aa2b-3de8-4d67-b907-287a2e7868af.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/75d10796-847a-4c23-8f48-cf6046799eeb.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/78ccf538-7b2b-49fe-ab15-8f2c8eb894be.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/8b0dacdd-f7aa-4d1e-a93e-cac4cea90dfe.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/8d9f6c89-5abe-481a-bfa7-4738567ff6a0.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/92ffe259-99f0-47d3-824a-6a649cb17034.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9468e905-6a82-401c-93ed-9ae6b6f1cd5d.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9ab67eb6-579a-4792-9fd5-51b046cf8873.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9ce87d83-eb80-4430-9925-93a55af3caae.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9edb4cc0-790d-48ac-9527-40d7196c9667.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9f82d101-8522-4b0f-a046-4df56e39f92d.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/9fa66811-896b-409a-bbd8-0b0adbb16da4.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/a3d85732-94f3-4a0c-b41b-0eb9084372e5.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/a4f343aa-4d4d-4948-b6ff-9f6cab295888.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/a9a587b3-2b9e-43ce-ab28-66d5e5f634a0.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/aee2f9e3-4f77-4b9a-b2df-7079b3d089ca.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/af716da0-dff7-4bc2-b2fc-a42f603f4f9c.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/b01ccf28-b786-4ff9-8a8b-5a809aa17bb9.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/b272bf9d-bd55-4a92-a0fd-b904240017a4.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/bf0b24f1-7173-49a1-b1f3-e5ed83b6a216.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/c0448d36-58b8-4cab-90d9-a873b88b5770.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/c3b82dbd-cc88-4791-bb9e-a80ac17b373b.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/cf12cdd3-9a9b-4ce0-bda5-c50d3098d30b.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d034df75-23ae-4dea-bfa3-334b94b79660.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d137be4d-e1db-47bb-86fa-0f8d5d18c9bc.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d21221ff-feee-4a5d-931f-90eede0da0ca.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d720b9c5-5101-4fe9-9a55-053e5fbe0391.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d82881bf-76f5-4078-b819-a55d5226d74f.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/d83dffb5-13bd-4f86-87f9-f76e3407e1d4.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/db6528c7-cea8-4a4f-9574-97324f2eab7e.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/dbc30bcd-876e-4499-bab2-362edfb76d2a.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/dc4091c2-b7b5-4612-95b7-f8fdd9163be6.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/dd0ea928-4136-45c3-a38c-c476fb0eb042.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/de760691-a8bd-4bbc-b9a9-cacbed929cf9.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/def8b78a-1955-4c98-a8fd-a7f7e48dc6aa.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/e51bfef1-1ca4-4bdd-b4b7-a948d9313273.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/ebacfb78-235c-49bd-bb35-b8a4ebc04578.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/ecdf9f4b-73de-4d84-9b50-7f91efd73352.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/f2876ebf-7ba4-47c4-bf40-7a1364564b59.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/f2b12e05-3b89-467e-9d7f-6a69164646af.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/f5615546-86c4-4d6c-8bf6-931e6079c987.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/f82c8bd7-bd96-4a69-826b-0f3d5c333996.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/f912a51b-4148-469e-a64c-d4c0d23cf445.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/fa969696-d6c4-4e47-9b78-b1633d973c0e.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/fb24d887-5e65-4ac2-abb3-f9d98220ddcc.yml(1 hunks)recipes/civictheme_content_generated_static/content/media/fe5c40fb-e8d0-4b71-b17a-a748b0a5ea7d.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/0040967e-ef5f-40f8-b121-2b7ddfe53f5f.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/00f7eecc-4a61-4a18-a576-26eec6eec844.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/05292e94-96bb-4473-8789-e6ad44686fcb.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/07bef1c1-03e3-4d7c-8a3b-ae69f02f5ab4.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/08020a10-ad1b-45bc-90c8-83acbb97b18e.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/0d90b6b6-4a8d-44fb-81a0-374c2da47a8e.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/0fcb4792-b6de-4c64-a3ea-15c12b9b3fd7.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/163433db-da0c-4cbf-ac40-266b3b29228c.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/1884cbeb-9f2c-4712-a617-866aebf4918f.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/1c10ab9e-949d-432d-b2a5-aa078017a2c7.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/1cb8248b-2966-434a-8432-ba10ad5dff78.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/1dd40c82-15c4-4200-bc8b-5b3bdbe49a7d.yml(1 hunks)recipes/civictheme_content_generated_static/content/node/1fdca8aa-648f-4e51-80c9-f87bc8b57131.yml(1 hunks)
⛔ Files not processed due to max files limit (45)
- recipes/civictheme_content_generated_static/content/node/23032a72-402b-4f6f-868c-399876a02467.yml
- recipes/civictheme_content_generated_static/content/node/26745917-c8cb-4bb5-8750-9f202ef2a31e.yml
- recipes/civictheme_content_generated_static/content/node/27709d78-f3c9-42f0-a8bf-515d26aefe41.yml
- recipes/civictheme_content_generated_static/content/node/27815c6e-ea20-4a38-becc-f772f8bab19a.yml
- recipes/civictheme_content_generated_static/content/node/28053af1-4990-445e-98b9-95bb015d5dae.yml
- recipes/civictheme_content_generated_static/content/node/28130b4e-1de0-4d3a-8f6f-14bf7905ea7c.yml
- recipes/civictheme_content_generated_static/content/node/2bb60112-264f-4546-a8d5-bc14adb04fe6.yml
- recipes/civictheme_content_generated_static/content/node/2cd2c878-9d09-4703-9c8b-e39eda7b2516.yml
- recipes/civictheme_content_generated_static/content/node/2f36df02-0076-4048-922d-29119721c898.yml
- recipes/civictheme_content_generated_static/content/node/2f53e6f7-f63c-4314-919b-b038130c5a3c.yml
- recipes/civictheme_content_generated_static/content/node/309fc8ec-87b6-4c57-9644-aa703b58cc64.yml
- recipes/civictheme_content_generated_static/content/node/32030cf4-b23b-49e3-ade0-878cb2fd89d0.yml
- recipes/civictheme_content_generated_static/content/node/321ce384-5050-4cfb-a5aa-fe8890a37348.yml
- recipes/civictheme_content_generated_static/content/node/33d261db-53ee-4d5d-acfa-620cb51a867f.yml
- recipes/civictheme_content_generated_static/content/node/35010308-cb58-4819-84d6-22c87d7b03d0.yml
- recipes/civictheme_content_generated_static/content/node/362b3d50-d695-4353-9777-d9f019587d6d.yml
- recipes/civictheme_content_generated_static/content/node/3a7003b8-c715-4980-9036-86de9a189bad.yml
- recipes/civictheme_content_generated_static/content/node/3af46d17-bca6-462d-8886-0a28c4ed676d.yml
- recipes/civictheme_content_generated_static/content/node/3ccbb634-5c09-4d9e-aa33-9166c0a86940.yml
- recipes/civictheme_content_generated_static/content/node/3e87346b-2c26-4b78-9ed4-7991cdd043ab.yml
- recipes/civictheme_content_generated_static/content/node/3f01ce4c-d803-4593-822b-235254c9ef29.yml
- recipes/civictheme_content_generated_static/content/node/3faced78-8dcf-4fd7-9edc-2f60a14b2479.yml
- recipes/civictheme_content_generated_static/content/node/41d42203-da13-48b4-bf95-e1a0e292805f.yml
- recipes/civictheme_content_generated_static/content/node/41f4ec58-9df9-4d89-9ac8-cbaca4824bae.yml
- recipes/civictheme_content_generated_static/content/node/453ac83d-41c4-4dc3-89b6-32fd1f2841df.yml
- recipes/civictheme_content_generated_static/content/node/49215b14-eff5-4844-b84c-e45af6ca6bee.yml
- recipes/civictheme_content_generated_static/content/node/4cf4e203-a69b-405f-b487-d06824952e1f.yml
- recipes/civictheme_content_generated_static/content/node/4fec9451-baa9-42a1-8213-3a539182678e.yml
- recipes/civictheme_content_generated_static/content/node/52ef05da-2381-4ed4-9d9c-6e1fe69e5389.yml
- recipes/civictheme_content_generated_static/content/node/55523df3-4940-4162-83ea-f406b1dbc39c.yml
- recipes/civictheme_content_generated_static/content/node/55ae485b-d054-4c56-9f42-97a80538f6cb.yml
- recipes/civictheme_content_generated_static/content/node/55dededf-b8f0-4ec8-9f60-42e694a03e24.yml
- recipes/civictheme_content_generated_static/content/node/58f7e848-8815-4848-9fba-763ff9ed5541.yml
- recipes/civictheme_content_generated_static/content/node/5a6f3e29-aefa-4004-92d2-26a6f78d7aac.yml
- recipes/civictheme_content_generated_static/content/node/5d270a4e-9bc6-4f3b-b3d3-c67aa18fdecb.yml
- recipes/civictheme_content_generated_static/content/node/5eb905db-f819-4820-b12e-e8a5bb307474.yml
- recipes/civictheme_content_generated_static/content/node/642880dc-d099-411d-972c-067a0433bd56.yml
- recipes/civictheme_content_generated_static/content/node/659471c8-de63-412f-8eff-60e39dd3e5d1.yml
- recipes/civictheme_content_generated_static/content/node/6b9ee0a3-c227-4334-8dce-3c2690933e83.yml
- recipes/civictheme_content_generated_static/content/node/6c33a7ec-9e6c-4657-817b-4eeaae795702.yml
- recipes/civictheme_content_generated_static/content/node/6cde5471-c98e-434d-83b0-25426b76c3b2.yml
- recipes/civictheme_content_generated_static/content/node/6d1d51b2-cbf2-4e12-b129-02d3be7f3905.yml
- recipes/civictheme_content_generated_static/content/node/6da2069d-e92e-451c-bcf9-995ba59b5775.yml
- recipes/civictheme_content_generated_static/content/node/6ef01f59-25d9-4551-b09b-175a7c8de683.yml
- recipes/civictheme_content_generated_static/content/node/706dd8e6-76a9-4752-b584-ff6fc1075686.yml
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-09T12:20:48.629Z
Learnt from: richardgaunt
PR: civictheme/monorepo-drupal#1340
File: web/themes/contrib/civictheme/config/install/field.field.paragraph.civictheme_message.field_c_p_content.yml:9-9
Timestamp: 2025-07-09T12:20:48.629Z
Learning: For paragraph field configurations in the civictheme Drupal theme, the configuration entity ID should follow the pattern `paragraph.bundle_name.field_name` rather than `field.field.paragraph.bundle_name.field_name`. This is specific to paragraph field configurations.
Applied to files:
recipes/civictheme_content_generated_static/content/node/08020a10-ad1b-45bc-90c8-83acbb97b18e.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build-and-push
🔇 Additional comments (62)
recipes/civictheme_content_generated_static/content/media/51c49b4b-50a5-4610-a47d-5f27735a2ef6.yml (1)
1-37: Config entry looks consistent.Fields, dependency reference, and metadata follow the expected pattern for generated civictheme document media. No issues spotted.
recipes/civictheme_content_generated_static/content/media/3c65c30d-319f-402c-9d42-dbedc799eb34.yml (1)
1-42: Media content entry looks consistentMetadata, dependency link, and field values all follow the expected Civictheme generated-static pattern. Alt text and dimensions are present, so this entry is ready to ship.
recipes/civictheme_content_generated_static/content/media/c3b82dbd-cc88-4791-bb9e-a80ac17b373b.yml (1)
1-42: Static media entry looks solid.Alt text, caption, dependency reference, and status metadata are all present and consistent with the existing generated content set. LGTM.
recipes/civictheme_content_generated_static/content/media/a4f343aa-4d4d-4948-b6ff-9f6cab295888.yml (1)
1-42: Static media entity looks consistentFields, dependency references, and accessibility metadata follow the established generated static pattern.
recipes/civictheme_content_generated_static/content/media/71e0aa2b-3de8-4d67-b907-287a2e7868af.yml (1)
1-42: Configuration looks consistentStructure, field values, and dependencies align with Drupal’s exported media entity schema. I don’t see any blockers here.
recipes/civictheme_content_generated_static/content/media/e51bfef1-1ca4-4bdd-b4b7-a948d9313273.yml (1)
33-42: Media asset metadata reads cleanly.Alt text, dimensions, and dependency wiring are all in place, so this entry should import without surprises.
recipes/civictheme_content_generated_static/content/media/238babdd-3c76-4b96-aa60-952cf44fe689.yml (1)
1-37: LGTM on this media exportOwnership, dependency linkage, moderation state, and document field wiring all look consistent with the other generated static assets. Nicely done.
recipes/civictheme_content_generated_static/content/media/78ccf538-7b2b-49fe-ab15-8f2c8eb894be.yml (1)
8-8: Confirm dependent file entity is committed.This media item depends on the file entity
3d72e253-d3fd-4dae-a9d8-ce5005749650. If that file export isn’t present in the recipe, the media import will fail with a missing dependency. Please double-check that the matchingcontent/fileYAML made it into the same PR.Also applies to: 38-38
recipes/civictheme_content_generated_static/content/file/8212ed57-5c2a-4e77-b905-fcf768dc49ae.yml (1)
1-27: Metadata looks consistent.All required file entity fields are populated and the URI aligns with the generated content convention.
recipes/civictheme_content_generated_static/content/media/ecdf9f4b-73de-4d84-9b50-7f91efd73352.yml (1)
1-42: Media definition is coherent.The dependency points to the new file entity, and required fields (caption, alt text, dimensions, moderation state) are present.
recipes/civictheme_content_generated_static/content/node/08020a10-ad1b-45bc-90c8-83acbb97b18e.yml (1)
1-122: Content export looks consistent.The node metadata, paragraph embedding, and referenced dependencies all line up with the civictheme content recipe expectations. No blockers spotted here.
recipes/civictheme_content_generated_static/content/media/f5615546-86c4-4d6c-8bf6-931e6079c987.yml (1)
1-42: Static media YAML looks consistent.Field structure and metadata follow the usual Drupal recipe default-content pattern, and the referenced file UUID keeps the dependency explicit. No changes needed. (drupalhelps.com)
recipes/civictheme_content_generated_static/content/media/d21221ff-feee-4a5d-931f-90eede0da0ca.yml (1)
1-38: LGTM: Media default content entry is consistent.Schema, dependencies, and field structure match our existing generated-static patterns. No changes needed.
recipes/civictheme_content_generated_static/content/media/b272bf9d-bd55-4a92-a0fd-b904240017a4.yml (1)
1-42: Looks consistent with the existing media defaultsField values, dependency declaration, and alt text follow the established pattern for generated Civictheme media, so I don’t see any blockers here.
recipes/civictheme_content_generated_static/content/file/93186753-3e96-47ef-b1f3-ff1cdc476ba9.yml (1)
7-27: Data definition looks consistent.The file entity metadata is complete (uri, mime type, size, ownership, and timestamps) and aligns with typical Drupal config expectations for generated assets.
recipes/civictheme_content_generated_static/content/media/9ab67eb6-579a-4792-9fd5-51b046cf8873.yml (1)
10-42: Media config ties together correctly.Status, ownership, caption, and the image field all reference the expected file UUID with appropriate alt text and dimensions, so the recipe should import cleanly.
recipes/civictheme_content_generated_static/content/media/2daf48b1-b1d6-4beb-ad81-e42a55efd1f0.yml (1)
34-42: Media payload looks solid.Caption, alt text, and image metadata are all in place, so this default-content entry should import cleanly.
recipes/civictheme_content_generated_static/content/file/f1e88e78-5f38-4afb-861b-a9af59e4526e.yml (1)
1-27: File entity metadata is consistent.All required properties (UUID, owner, URI, MIME type, size, status, created timestamp) align with the existing generated static assets. No changes needed.
recipes/civictheme_content_generated_static/content/media/4e188906-d5cc-40ea-bb76-92cea2bb5ee9.yml (1)
1-37: Media entity wiring looks correct.The dependency on the new file, field assignments, and moderation/path flags are in line with the other civictheme_document media entries. No adjustments required.
recipes/civictheme_content_generated_static/content/media/a9a587b3-2b9e-43ce-ab28-66d5e5f634a0.yml (1)
34-42: Alt text and caption coverage appreciatedIncluding both a caption and descriptive alt text keeps this media entity accessible out of the box. Nicely done.
recipes/civictheme_content_generated_static/content/media/70602d7c-8746-4807-a288-32eb7fc32ef6.yml (1)
1-37: Content entity export looks consistent.Metadata, dependencies, and field payload align with the expected Drupal default-content structure, and the referenced file UUID ties back cleanly. No issues spotted.
recipes/civictheme_content_generated_static/content/media/9edb4cc0-790d-48ac-9527-40d7196c9667.yml (1)
33-36: Linkage to the file entity looks good.The media item correctly depends on and references file
9382498c-2678-4e74-92a2-f64b57e11f36, so once the asset is present the relationship should hydrate cleanly during recipe install.recipes/civictheme_content_generated_static/content/file/9382498c-2678-4e74-92a2-f64b57e11f36.yml (1)
13-21: Asset Presence Verified: ConfirmedGenerated_static_pdf_file_4_alia.pdfis committed atrecipes/civictheme_content_generated_static/content/file/Generated_static_pdf_file_4_alia.pdf.recipes/civictheme_content_generated_static/content/media/a3d85732-94f3-4a0c-b41b-0eb9084372e5.yml (1)
1-42: Structured default content looks good.The entity metadata, dependency, and image field reference are consistent with the surrounding generated content. No changes needed.
recipes/civictheme_content_generated_static/content/media/8b0dacdd-f7aa-4d1e-a93e-cac4cea90dfe.yml (1)
1-37: Stable default content mappingThe metadata, default values, and entity reference format match the default_content module’s expected YAML shape. I don’t see any issues here. (drupal.org)
recipes/civictheme_content_generated_static/content/file/a76f202a-2bd7-4af1-937c-1835b9257d81.yml (1)
10-27: Confirm generated PDF asset is present.This file entity points to
public://generated_content/Generated_static_pdf_file_1_duci.pdf. Please double-check that the matching binary lives under the recipe’sfiles/payload so the install recipe doesn’t end up with a dangling file reference on import.recipes/civictheme_content_generated_static/content/media/3378938b-d96c-4291-8fbb-f04208984625.yml (1)
1-42: Static media entry looks consistentCaption, alt text, and file dependency line up with the generated content pattern. No issues from my side.
.env (1)
42-54: Env guidance reads clearlyThe clarified DRUPAL_VERSION/DRUPAL_PROFILE options make the starter recipe selection obvious. Looks good.
recipes/civictheme_content_generated_static/content/media/d137be4d-e1db-47bb-86fa-0f8d5d18c9bc.yml (1)
1-42: Media metadata matches expectationsSame structure and dependency handling as the other generated entries—happy with this addition.
recipes/civictheme_content_generated_static/content/file/5322e72b-5f0f-44ba-ad05-ee64380e1f57.yml (1)
1-27: File entity definition checks outFilename, URI, and metadata are aligned with the generated PDF assets—no concerns.
recipes/civictheme_content_generated_static/content/media/cf12cdd3-9a9b-4ce0-bda5-c50d3098d30b.yml (1)
1-42: Alt text and dimensions providedAnother well-formed civictheme_image entry; alt text is present and the file link is wired correctly. All good.
recipes/civictheme_content_generated_static/content/media/09d61f69-746d-42d1-9d8f-78c256e9595e.yml (1)
1-42: Looks consistent with existing media exports.Metadata, dependency reference, and field mappings all align with the Civictheme image recipe conventions.
recipes/civictheme_content_generated_static/content/media/1f232b36-2259-4825-b989-76ab776794c3.yml (1)
1-42: All good here as well.Entity metadata and referenced file UUID follow the same validated pattern as other generated Civictheme images.
recipes/civictheme_content_generated_static/content/media/8d9f6c89-5abe-481a-bfa7-4738567ff6a0.yml (1)
1-37: Document media export looks correct.Dependency mapping and field_c_m_document payload fit the expected Civictheme document defaults.
recipes/civictheme_content_generated_static/content/node/05292e94-96bb-4473-8789-e6ad44686fcb.yml (1)
1-138: Node export aligns with the Civictheme recipe schema.Paragraph embedding, path configuration, and field settings are all in line with other generated page content.
recipes/civictheme_content_generated_static/content/media/92ffe259-99f0-47d3-824a-6a649cb17034.yml (1)
1-37: Consistent with the other document media exports.Fields and dependency wiring follow the established Civictheme defaults with no issues noticed.
recipes/civictheme_content_generated_static/content/file/2a53199e-3cd3-419c-b044-16a509602752.yml (1)
1-27: Metadata looks consistent.The file entity export follows the expected structure and values for generated static assets.
recipes/civictheme_content_generated_static/content/media/ebacfb78-235c-49bd-bb35-b8a4ebc04578.yml (1)
1-42: Media entity matches recipe conventions.The dependencies, image field reference, and moderation details align with standard Civictheme media exports.
recipes/civictheme_content_generated_static/content/media/fb24d887-5e65-4ac2-abb3-f9d98220ddcc.yml (1)
1-42: Content export looks good.Field values, dependencies, and metadata mirror the established pattern for generated static media.
recipes/civictheme_content_generated_static/content/media/2b33fc27-dd4a-427e-a3a2-4b3ace382ca4.yml (1)
1-42: Image media configuration is consistent.The referenced file UUID and field payloads are structured as expected for this bundle.
recipes/civictheme_content_generated_static/content/media/11b09eaa-ae94-48db-84f7-c6431a1f5e78.yml (1)
1-37: Document media entry aligns with defaults.All required fields, dependencies, and moderation details appear in order for the civictheme_document bundle.
recipes/civictheme_content_generated_static/content/media/f912a51b-4148-469e-a64c-d4c0d23cf445.yml (1)
33-37: Referenced file entity exists. The UUID 5322e72b-5f0f-44ba-ad05-ee64380e1f57 is present atrecipes/civictheme_content_generated_static/content/file/5322e72b-5f0f-44ba-ad05-ee64380e1f57.yml. No missing dependency.recipes/civictheme_content_generated_static/content/media/af716da0-dff7-4bc2-b2fc-a42f603f4f9c.yml (1)
37-38: Dependent file export confirmed
The matching file entity YAML for UUID2a53199e-3cd3-419c-b044-16a509602752is present atrecipes/civictheme_content_generated_static/content/file/2a53199e-3cd3-419c-b044-16a509602752.yml, satisfying the dependency.recipes/civictheme_content_generated_static/content/media/9fa66811-896b-409a-bbd8-0b0adbb16da4.yml (1)
7-8: All referenced file UUIDs have matching content/file definitions.recipes/civictheme_content_generated_static/content/media/434236aa-1a77-474d-9a31-7305ffb3e9d5.yml (1)
38-42: Confirm image metadata dimensions match actual file: Verify that the width/height metadata (1552 × 846) inrecipes/civictheme_content_generated_static/content/media/434236aa-1a77-474d-9a31-7305ffb3e9d5.ymlexactly matches the source image (e.g., viaidentify) to prevent cropping or derivative-generation issues.recipes/civictheme_content_generated_static/content/media/2446bb9b-e26d-44c3-94c0-7ef6edf4a605.yml (1)
7-8: Verify dependent file export exists.Ensure
content/file/9165e3f8-2cc5-4804-a53f-6382dd53ef17.yml(or equivalent) is present; otherwise this import will fail.Run the repo-wide dependency check script I’ve shared below in another comment.
recipes/civictheme_content_generated_static/content/node/00f7eecc-4a61-4a18-a576-26eec6eec844.yml (1)
81-84: Confirm related configuration exists (text format and view mode).
format: civictheme_rich_textmust exist on install.field_c_p_list_item_view_as: civictheme_navigation_cardmust be a valid view mode/bundle config.If these are provided by the new recipe, we’re good; otherwise add them to the recipe’s config set.
Also applies to: 93-96
recipes/civictheme_content_generated_static/content/media/1590793c-8c13-4a67-8607-dd9aef6115e7.yml (2)
7-8: Verify dependent file export exists.Confirm
2a53199e-3cd3-419c-b044-16a509602752is exported undercontent/file/.
37-42: Image metadata consistency.Double‑check the stored width/height match the actual asset to avoid derivative regen on import.
recipes/civictheme_content_generated_static/content/media/9f82d101-8522-4b0f-a046-4df56e39f92d.yml (1)
7-8: Shared file UUID across media — confirm intent.This media also references
2a53199e-3cd3-419c-b044-16a509602752. If intentional (multiple media wrapping one file), all good; otherwise point to distinct files.recipes/civictheme_content_generated_static/content/node/07bef1c1-03e3-4d7c-8a3b-ae69f02f5ab4.yml (3)
7-8: Taxonomy dependency — ensure term export is included.
6b72fc35-5061-40e5-88c4-e4166fcd9ademust exist undercontent/taxonomy_term/. Missing it will break import.
47-53: Rich text format must be present.
format: civictheme_rich_textneeds to be provisioned by the recipe/profile.
76-89: Map paragraph field consistency.Some items provide only
embed_url, others bothaddressandembed_url. Confirm the component supports both simultaneously and validation won’t reject mixed inputs.Also applies to: 146-157
recipes/civictheme_content_generated_static/content/node/163433db-da0c-4cbf-ac40-266b3b29228c.yml (1)
17-19: Confirm node owner is allowed to be uid 0 on your target sites.Some Drupal installs disallow content owned by the anonymous user; many recipes default to uid 1. Please confirm importer/site config accepts uid 0 for nodes. If not, switch to uid 1.
recipes/civictheme_content_generated_static/content/node/1fdca8aa-648f-4e51-80c9-f87bc8b57131.yml (1)
17-19: Confirm paragraph owners can be uid 0.Same consideration as nodes/media; verify your site accepts anonymous ownership for content entities created by the recipe.
recipes/civictheme_content_generated_static/content/media/def8b78a-1955-4c98-a8fd-a7f7e48dc6aa.yml (2)
7-8: Verify the referenced file UUID exists in the repo.Ensure 28b82ba2-601d-4e12-b08f-386962c45545 is present under content/file/*.yml so the media import succeeds. Use the repo‑wide script above.
13-19: Media owner is uid 0 — confirm this is allowed.Some setups require a real owner (often uid 1) for media entities. Please confirm or adjust.
recipes/civictheme_content_generated_static/content/node/0040967e-ef5f-40f8-b121-2b7ddfe53f5f.yml (3)
7-10: Good: explicit dependencies declared.Declaring media and taxonomy term in depends should make imports deterministic.
56-59: Good: date range ordering is valid (start < end).No issues spotted.
21-25: Confirm node owner uid 0 is acceptable on target sites.Same as other files — verify importer/site policy.
recipes/civictheme_content_generated_static/content/node/1cb8248b-2966-434a-8432-ba10ad5dff78.yml (2)
55-169: Map components look consistent across variants.Background/theme/spacing combinations cover light/dark and spacing cases; links/addresses present where expected.
If there’s a canonical set of allowed values for field_c_p_theme/background/vertical_spacing, consider adding a quick automated check in the recipe CI to prevent typos in future.
17-19: Confirm node owner uid 0.Please verify anonymous ownership is supported for nodes in your environments.
| id: title | ||
| table: node_field_data | ||
| field: title | ||
| relationship: none | ||
| group_type: group | ||
| admin_label: '' | ||
| entity_type: node | ||
| entity_field: title | ||
| plugin_id: string | ||
| operator: starts | ||
| value: Event. | ||
| group: 1 | ||
| exposed: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix the events view filter pattern
The events display filters titles with value: 'Event.', so the query looks for titles that begin with “Event.”. The generated event nodes actually start with “Event 10.” (note the space), so this filter will never match and the events page renders empty. Please drop the dot (or otherwise align the filter with the real title prefix) so events appear in the listing.
- value: 'Event.'
+ value: 'Event '📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| id: title | |
| table: node_field_data | |
| field: title | |
| relationship: none | |
| group_type: group | |
| admin_label: '' | |
| entity_type: node | |
| entity_field: title | |
| plugin_id: string | |
| operator: starts | |
| value: Event. | |
| group: 1 | |
| exposed: false | |
| id: title | |
| table: node_field_data | |
| field: title | |
| relationship: none | |
| group_type: group | |
| admin_label: '' | |
| entity_type: node | |
| entity_field: title | |
| plugin_id: string | |
| operator: starts | |
| value: 'Event ' | |
| group: 1 | |
| exposed: false |
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/config/views.view.cs_generated_content_list.yml
around lines 412 to 424, the view filter uses value: 'Event.' which doesn't
match real node titles like "Event 10." (they use a space, not a dot); update
the filter value to match the actual prefix (for example change to "Event " with
a trailing space or to "Event" if you prefer a broader match) so the "starts"
operator will correctly match and events will appear in the listing.
| alt: 'Alt for Generated static Image media 35 Consequatur deserunt.' | ||
| title: '' | ||
| width: 500 | ||
| height: 846 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
Alt text is placeholder; consider meaningful alt or empty if decorative.
Replace “Alt for Generated static Image media …” with task‑focused alt text, or set to empty if purely decorative (per your accessibility policy).
Quick scan for placeholder alts:
🏁 Script executed:
#!/usr/bin/env bash
rg -n "alt:\s*'Alt for Generated static" recipes/civictheme_content_generated_static/content/mediaLength of output: 8516
Replace placeholder alt text in all generated media YAML files
Placeholder alt strings were detected in 53 files under recipes/civictheme_content_generated_static/content/media/*.yml. Update each alt entry to a meaningful, task-focused description or set it to an empty string if the image is purely decorative per your accessibility policy. You can locate them with:
rg -n "alt:\s*'Alt for Generated static" recipes/civictheme_content_generated_static/content/media🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/media/551b075c-af70-4521-9de7-ec5e487c40f8.yml
around lines 39 to 42, the alt field contains a placeholder "Alt for Generated
static Image..." which must be replaced with a meaningful, task-focused
description of the image content or set to an empty string if the image is
purely decorative per our accessibility policy; update the alt value accordingly
(keeping YAML string quoting/format), and repeat this change across the other 52
files matched by recipes/civictheme_content_generated_static/content/media/*.yml
so no placeholder alt strings remain.
| uid: | ||
| - | ||
| target_id: 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assign the media owner to an actual user
Setting uid to 0 makes the media item owned by the anonymous user, but there is no corresponding user entity to reference. During import this leaves the owner unset, and downstream code that expects a real UserInterface will fail or fall back to the current request user. Please point the media to a real user (typically user 1 in default content).
uid:
-
- target_id: 0
+ target_id: 1📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| uid: | |
| - | |
| target_id: 0 | |
| uid: | |
| - | |
| target_id: 1 |
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/media/59d72cfa-f37d-4689-99e8-cc68f387fbb9.yml
around lines 13-15 the media uid is set to 0 which points to the
anonymous/nonexistent user; change the uid mapping to reference a real user
(commonly user id 1) so the media owner is a valid User entity (e.g., replace
target_id: 0 with target_id: 1 or another existing user id) and verify that the
referenced user exists in the import set.
| - | ||
| value: 1758892277 | ||
| revision_translation_affected: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Created timestamp is in the future
The created value 1758892277 resolves to a date in late October 2025, which is after today (September 29, 2025). On install this media item will appear as if it was created in the future, skewing any ordering or date displays that rely on created. Please update the timestamp to a past value that matches when the content should appear to have been authored.
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/media/6e26b476-a047-4547-bf86-2c73dd48f843.yml
around lines 20-22 the created timestamp value 1758892277 is in the future;
update that numeric Unix timestamp to a past Unix timestamp that reflects the
actual authored/created date you want this media item to show (i.e., replace
1758892277 with a timestamp earlier than the current date so ordering and
displays are correct).
| uid: | ||
| - | ||
| target_id: 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
Media owner is anonymous (uid: 0) — confirm policy or set to editorial owner.
Some installs disallow media owned by uid 0. Prefer a real editorial/account owner to avoid workflow/permissions surprises.
Run to see all media set to uid 0:
🏁 Script executed:
#!/usr/bin/env bash
rg -nP '^\s+target_id:\s*0\b' recipes/civictheme_content_generated_static/content/mediaLength of output: 8469
🏁 Script executed:
#!/usr/bin/env bash
rg -nP '^\s+target_id:\s*0\b' recipes/civictheme_content_generated_static/content/media | wc -lLength of output: 2
Set media owner in generated static YAML from uid 0 to a valid editorial user. 70 media files under recipes/civictheme_content_generated_static/content/media are currently owned by uid 0 (anonymous), which many installs disallow—update the generator or post-processing to emit a real editorial user id.
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/media/9fa66811-896b-409a-bbd8-0b0adbb16da4.yml
around lines 13–15 the media owner is emitted as uid: - target_id: 0
(anonymous); update the generator or a post-processing step so it emits a valid
editorial user id instead of 0: change the generator logic to resolve a
configured default editorial UID (or lookup a known editorial username and use
its id), ensure the YAML writes that numeric id (not 0), make the default
configurable via env/setting, and add a migration/test to validate no media
files are exported with target_id: 0.
| uid: | ||
| - | ||
| target_id: 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure the media owner references a valid user entity.
Line 15 sets uid.target_id to 0, but Drupal treats the owner field as an entity reference and expects a real user record. During recipe import this can fail validation (user 0 doesn’t exist) or fall back to an unintended owner. Please point the media item at an actual user account (e.g., user 1) and add the corresponding _meta.depends entry so the dependency graph is satisfied.
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/media/bf0b24f1-7173-49a1-b1f3-e5ed83b6a216.yml
around lines 13 to 15, the media item's uid.target_id is set to 0 which is not a
valid user entity; change uid.target_id to a real user id (e.g., 1) and
add/update the _meta.depends section to include the corresponding user entity so
the import dependency graph references that user record.
| _meta: | ||
| version: '1.0' | ||
| entity_type: node | ||
| uuid: 163433db-da0c-4cbf-ac40-266b3b29228c | ||
| bundle: civictheme_page | ||
| default_langcode: en |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
Repo‑wide sanity check for referenced UUIDs, empty text formats, and uid=0 usage.
Run this to validate that all referenced entities exist, detect empty text formats, very long aliases, and content owned by uid 0:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
root="recipes/civictheme_content_generated_static"
# 1) Collect defined UUIDs.
python - <<'PY'
import re, pathlib, sys
defined=set(); referenced=set(); aliases=[]
uid0=[]
fmt_empty=[]
for p in pathlib.Path(".").rglob("recipes/civictheme_content_generated_static/**/*.yml"):
s=p.read_text(encoding="utf-8", errors="ignore")
for m in re.finditer(r'^\s*uuid:\s*([0-9a-f-]{36})\s*$', s, re.M):
defined.add(m.group(1))
for m in re.finditer(r'^\s*depends:\s*\n((?:^\s{2,}[0-9a-f-]{36}:\s*\w+\s*\n)+)', s, re.M):
for k in re.findall(r'^\s{2,}([0-9a-f-]{36}):', m.group(1), re.M):
referenced.add(k)
for m in re.finditer(r'^\s*entity:\s*([0-9a-f-]{36})\s*$', s, re.M):
referenced.add(m.group(1))
for m in re.finditer(r'^\s*alias:\s*(.+)$', s, re.M):
alias=m.group(1).strip().strip("'\"")
aliases.append((str(p), alias, len(alias)))
if re.search(r'^\s*target_id:\s*0\s*$', s, re.M):
uid0.append(str(p))
for m in re.finditer(r'^\s*format:\s*([\'"]{0,1})\s*\1\s*$', s, re.M):
fmt_empty.append(str(p))
missing = sorted(referenced - defined)
print("# Missing referenced UUIDs:" if missing else "# No missing referenced UUIDs found.")
for u in missing: print(u)
long_alias=[x for x in aliases if x[2] > 240]
print("\n# Aliases longer than 240 chars:" if long_alias else "\n# No long aliases >240 chars.")
for f,a,n in long_alias: print(f"{n:3d} {f} :: {a}")
print("\n# Files with uid target_id: 0:" if uid0 else "\n# No uid:0 occurrences.")
for f in sorted(set(uid0)): print(f)
print("\n# Files with empty text 'format':" if fmt_empty else "\n# No empty text formats found.")
for f in sorted(set(fmt_empty)): print(f)
PYLength of output: 23253
Fix content ownership and text formats in generated YAML files
- No missing referenced UUIDs and no aliases over 240 chars.
- Multiple files flagged with
target_id: 0; update these to a valid non-zero uid. - Multiple node files have empty
format; assign an appropriate text format.
(See script output for full file list.)
🤖 Prompt for AI Agents
In
recipes/civictheme_content_generated_static/content/node/163433db-da0c-4cbf-ac40-266b3b29228c.yml
around lines 1 to 6, the generated YAML may contain missing referenced UUIDs,
aliases longer than 240 chars, fields with target_id: 0, and empty text format
values; update the file to replace any missing or invalid referenced UUIDs with
valid existing UUIDs (or remove invalid references), shorten or remove aliases
that exceed 240 characters, change any target_id: 0 entries to an appropriate
non-zero user ID or reference ID used in your dataset, and set empty format
fields to a valid text format (e.g., basic_html or full_html) consistent with
your site configuration so the node imports without errors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
.gitignore (2)
66-71: Keep recipes/ present even if exceptions are removed.Add an explicit allow for a placeholder to avoid the directory disappearing when none of the whitelisted subdirs exist.
Apply:
/recipes/* +!/recipes/.gitkeep !/recipes/civictheme_content_generated_static/ !/recipes/civictheme_drupal_cms_preinstall/ !/recipes/civictheme_drupal_cms_starter/ !/recipes/civictheme_starter/Also commit an empty file at
recipes/.gitkeep.
66-71: Optional: future‑proof exceptions with a single glob.If policy is to track all CivicTheme recipes, a single pattern reduces maintenance.
Alternative:
-/recipes/* -!/recipes/civictheme_content_generated_static/ -!/recipes/civictheme_drupal_cms_preinstall/ -!/recipes/civictheme_drupal_cms_starter/ -!/recipes/civictheme_starter/ +/recipes/* +!/recipes/civictheme_*/
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
.gitignore(1 hunks)recipes/.gitignore(0 hunks)
💤 Files with no reviewable changes (1)
- recipes/.gitignore
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build-and-push
- GitHub Check: build-and-push
- GitHub Check: commit
| # Ignore recipes directory except specific subdirectories | ||
| /recipes/* | ||
| !/recipes/civictheme_content_generated_static/ | ||
| !/recipes/civictheme_drupal_cms_preinstall/ | ||
| !/recipes/civictheme_drupal_cms_starter/ | ||
| !/recipes/civictheme_starter/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
Patterns/order look correct; verify behavior on real paths.
The anchored ignore and explicit exceptions for recipe subdirs are sound. Recommend verifying with git to ensure only the intended paths are tracked.
Run:
🏁 Script executed:
#!/bin/bash
# List files under recipes and show which ones are ignored vs tracked.
fd -H . recipes -t f -0 | xargs -0 -I{} bash -lc 'git check-ignore -v "{}" || echo "TRACKED: {}"'Length of output: 51807
Remove tracked recipe files from index and adjust ignore patterns
.gitignore entries correctly ignore /recipes/* and unignore the four subdirectories, but existing files remain tracked and children aren’t re‐included by the current exceptions. To apply the ignore rules:
- Run
git rm -r --cached recipesto untrack all recipe files. - Commit the updated .gitignore.
- Add back only desired directories, e.g. include content by changing
to
!/recipes/civictheme_content_generated_static/!/recipes/civictheme_content_generated_static/**
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Ignore recipes directory except specific subdirectories | |
| /recipes/* | |
| !/recipes/civictheme_content_generated_static/ | |
| !/recipes/civictheme_drupal_cms_preinstall/ | |
| !/recipes/civictheme_drupal_cms_starter/ | |
| !/recipes/civictheme_starter/ | |
| # Ignore recipes directory except specific subdirectories | |
| /recipes/* | |
| !/recipes/civictheme_content_generated_static/** | |
| !/recipes/civictheme_drupal_cms_preinstall/ | |
| !/recipes/civictheme_drupal_cms_starter/ | |
| !/recipes/civictheme_starter/ |
🤖 Prompt for AI Agents
.gitignore around lines 66 to 71: the repository currently has /recipes/*
ignored with exceptions for four subdirectories, but files under recipes are
already tracked so the ignore rules have no effect and the current exceptions
don't re-include children; to fix, remove tracked recipe files from the index
(untrack the whole recipes tree), commit the updated .gitignore, then re-add
only the desired directories or files you want tracked (or adjust the exceptions
to re-include children explicitly) so Git tracks only those allowed subpaths.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
recipes/civictheme_content_generated_static/composer.json(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build-and-push
- GitHub Check: build-and-push
- GitHub Check: commit
| { | ||
| "name": "drupal/civictheme_content_generated_static", | ||
| "description": "Install civictheme generated static content for visual comparison", | ||
| "type": "recipe", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Composer package type must be drupal-recipe.
Drupal’s recipe tooling only recognizes packages with "type": "drupal-recipe". Leaving this as "recipe" prevents Composer (and the core recipe-unpack plugin) from detecting and unpacking the recipe, so it will never be applied correctly. Please switch the type to drupal-recipe.(project.pages.drupalcode.org)
Apply this diff:
- "type": "recipe",
+ "type": "drupal-recipe",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "type": "recipe", | |
| "type": "drupal-recipe", |
🤖 Prompt for AI Agents
In recipes/civictheme_content_generated_static/composer.json around line 4 the
package "type" is set to "recipe" which prevents Drupal's recipe tooling from
detecting and unpacking it; change the value to "drupal-recipe" so Composer and
the core recipe-unpack plugin recognize and apply the recipe correctly, updating
the JSON entry for "type" accordingly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.ahoy.yml(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build-and-push
- GitHub Check: build-and-push
- GitHub Check: commit
| provision-cms: | ||
| usage: Provision a site with Drupal CMS profile. | ||
| cmd: ahoy cli "DRUPAL_VERSION=CMS DRUPAL_PROFILE=/app/recipes/drupal_cms_starter ./scripts/drevops/provision.sh" | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
CMS recipe path likely incorrect; confirm preinstall sequencing to avoid layout bug
- Path points to /app/recipes/drupal_cms_starter, but PR describes recipe as civictheme_drupal_cms_starter. Also, the helper recipe civictheme_drupal_cms_preinstall is required “to avoid a missing layout bug,” yet it isn’t invoked here.
Proposed fix (minimum path correction):
- cmd: ahoy cli "DRUPAL_VERSION=CMS DRUPAL_PROFILE=/app/recipes/drupal_cms_starter ./scripts/drevops/provision.sh"
+ cmd: ahoy cli "DRUPAL_VERSION=CMS DRUPAL_PROFILE=/app/recipes/civictheme_drupal_cms_starter ./scripts/drevops/provision.sh"If preinstall must run before the CMS starter, either:
- encode that dependency inside the CMS starter recipe (preferred), or
- introduce a dedicated Ahoy command that triggers both in sequence (only if provision.sh supports it), e.g. setting an env var that the script reads to install multiple recipes in order.
Quick checks:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Check expected recipe directories exist:"
for d in recipes/civictheme_drupal_cms_starter recipes/drupal_cms_starter recipes/civictheme_starter recipes/civictheme_drupal_cms_preinstall; do
if [ -d "$d" ]; then echo "FOUND: $d"; else echo "MISSING: $d"; fi
done
echo
echo "Inspect provision.sh for accepted DRUPAL_VERSION values and recipe handling:"
rg -n --color=never '\bDRUPAL_VERSION\b' scripts/drevops/provision.sh || true
rg -n --color=never '\bCMS\b' scripts/drevops/provision.sh || true
rg -n --color=never '\bDRUPAL_PROFILE\b' scripts/drevops/provision.sh || trueLength of output: 516
Fix CMS recipe path and invoke preinstall step
- In
.ahoy.yml(lines 131–134), update the profile path:
- DRUPAL_PROFILE=/app/recipes/drupal_cms_starter
+ DRUPAL_PROFILE=/app/recipes/civictheme_drupal_cms_starter- Ensure
civictheme_drupal_cms_preinstallruns before the CMS starter—either embed it in the starter recipe or add an Ahoy command that runs both in sequence.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| provision-cms: | |
| usage: Provision a site with Drupal CMS profile. | |
| cmd: ahoy cli "DRUPAL_VERSION=CMS DRUPAL_PROFILE=/app/recipes/drupal_cms_starter ./scripts/drevops/provision.sh" | |
| provision-cms: | |
| usage: Provision a site with Drupal CMS profile. | |
| cmd: ahoy cli "DRUPAL_VERSION=CMS DRUPAL_PROFILE=/app/recipes/civictheme_drupal_cms_starter ./scripts/drevops/provision.sh" |
🤖 Prompt for AI Agents
In .ahoy.yml around lines 131 to 134, the Drupal CMS profile path points to the
starter recipe only and does not run the required
civictheme_drupal_cms_preinstall step first; update the DRUPAL_PROFILE path to
the correct preinstall-aware profile (or ensure the starter recipe includes/refs
civictheme_drupal_cms_preinstall), and modify the provision-cms cmd to run the
preinstall step before the starter (either by embedding the preinstall into the
starter recipe or chaining commands so civictheme_drupal_cms_preinstall executes
prior to ./scripts/drevops/provision.sh).
| provision-11: | ||
| usage: Provision a site with CivicTheme starter for Drupal 11. | ||
| cmd: ahoy cli "DRUPAL_PROFILE=/app/recipes/civictheme_starter DRUPAL_VERSION=11 ./scripts/drevops/provision.sh" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
LGTM for Drupal 11 starter command
The command aligns with the civictheme_starter path and expected envs. Consider a quick sanity check that the recipe directory exists and provision.sh recognizes DRUPAL_VERSION=11.
Run:
🏁 Script executed:
#!/bin/bash
[ -d recipes/civictheme_starter ] && echo "FOUND: recipes/civictheme_starter" || echo "MISSING: recipes/civictheme_starter"
rg -n --color=never '\bDRUPAL_VERSION\b' scripts/drevops/provision.sh | rg -n --color=never '11|case|if' || trueLength of output: 33
Add Drupal 11 handling to provision.sh The recipes/civictheme_starter directory exists, but scripts/drevops/provision.sh doesn’t reference DRUPAL_VERSION; please implement explicit support for version 11.
🤖 Prompt for AI Agents
In .ahoy.yml around lines 135-137: the ahoy command exports DRUPAL_VERSION=11
but scripts/drevops/provision.sh doesn’t consume it; update provision.sh to read
the DRUPAL_VERSION env var (with a sensible default), add a branch/case for
version "11" that selects the correct recipe/profile path and any
Drupal_core/composer/drush flags needed for Drupal 11, and ensure downstream
commands (composer create/project, drush/site-install, or recipe copy) use that
chosen version/profile; validate the script exits with a clear error when an
unsupported DRUPAL_VERSION is provided.
| ignore: /^content\/.*/ | ||
| tags: | ||
| only: /.*/ | ||
| - build-drupal-cms: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First go at testing Drupal CMS with CivicTheme
| drush config-set node.settings use_admin_theme 1 | ||
| fi | ||
|
|
||
| if [[ "$DRUPAL_PROFILE" != /app/recipes/* ]] || [[ "$DRUPAL_PROFILE" != "/app/recipes/civictheme_starter" ]]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unsure if we need this.. will check to see if i can remove this conditional.
| else | ||
| fi | ||
|
|
||
| if [ "${DRUPAL_VERSION:-}" != 'CMS' ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have own admin theme in Drupal CMS.
| @@ -23,8 +23,9 @@ fi | |||
|
|
|||
| if [ "${CIVICTHEME_GENERATED_CONTENT_CREATE_SKIP:-}" != "1" ]; then | |||
| echo " > Generate test content." | |||
| GENERATED_CONTENT_CREATE=1 drush pm-enable cs_generated_content | |||
|
|
|||
| drush recipe /app/recipes/civictheme_content_generated_static | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is contentious - but for now I want standardised generated content so we can visual regression (in a follow up PR).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've tested visual regression tool against this release to make sure everything looks the same visually
| description: 'Install civicthemes, module dependencies, required configuration, and basic block types.' | ||
| type: 'Site' | ||
| recipes: | ||
| - core/recipes/basic_block_type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have replaced standard profile - so we are installing with standard profile recipe components that we want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.circleci/config.yml(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: build-and-push
- GitHub Check: build-and-push
- GitHub Check: commit
🔇 Additional comments (1)
.circleci/config.yml (1)
635-647: Validate workflow scope and dependencies for the new job.
- Filters mirror other build jobs (ignore content/*, allow all tags) — OK. Confirm you intend to run CMS builds on every branch, not just develop/release/hotfix like content jobs.
- If CMS coverage must be green before deploy, add build-drupal-cms to the deploy/deploy_artifact requires lists; otherwise current setup won’t gate deploys on the CMS path.
No code change required; please confirm intent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.circleci/config.yml(2 hunks).docker/cli.dockerfile(1 hunks).docker/cli.onlytheme.dockerfile(1 hunks).docker/cli.sibling.dockerfile(1 hunks)docker-compose.yml(1 hunks)
🧰 Additional context used
🪛 GitHub Actions: Build and Push civictheme-monorepo-drupal to Quant Cloud
.docker/cli.dockerfile
[error] 60-60: COPY recipes /app/recipes failed: failed to build, checksum error: '/recipes' not found in build context.
[warning] 25-25: SecretsUsedInArgOrEnv: Do not use ARG or ENV for sensitive data (ARG "GITHUB_TOKEN").
[warning] 26-26: SecretsUsedInArgOrEnv: Do not use ARG or ENV for sensitive data (ENV "GITHUB_TOKEN").
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: commit
🔇 Additional comments (6)
.circleci/config.yml (2)
387-393: Path issue already flagged in previous review.The DRUPAL_PROFILE path has already been identified as incorrect in a previous review. The path should reference
recipes/civictheme_drupal_cms_starterbased on the PR's recipe additions.
635-647: LGTM!The workflow step correctly wires the new
build-drupal-cmsjob with appropriate dependencies and branch/tag filters.docker-compose.yml (1)
66-68: LGTM!The addition of
DRUPAL_VERSIONandDRUPAL_PROFILEenvironment variables with sensible defaults (Drupal 11 and standard profile) provides flexibility for different Drupal configurations across the project..docker/cli.sibling.dockerfile (1)
59-60: LGTM!The addition of the recipes directory copy step and updated comment correctly reflect the expanded build scope to include recipe-driven provisioning.
.docker/cli.onlytheme.dockerfile (1)
58-59: LGTM!The recipes directory is now properly copied into the container, consistent with the other Dockerfile variants in this PR.
.docker/cli.dockerfile (1)
25-26: Note: Pre-existing GITHUB_TOKEN warnings.The pipeline warnings about
GITHUB_TOKENin ARG/ENV are pre-existing and not introduced by this PR.
Checklist before requesting a review
Issue #123456 by drupal_org_username: Issue titleChangedsection about WHY something was done if this was not a normal implementationBackground / Changes
CivicTheme requires a number of steps to install, we would like to provide an easier method for installing CivicTheme, config and content.
This PR provides a number of recipes.
Starter Recipes for Drupal 11 and Drupal CMS
civictheme_starter) - Install civicthemes, module dependencies, required configuration, and basic block types. The name comes fromdrupal_cms_starterwith starter denoting that it is building on a new site. Installing on an existing site is untested with this recipe.civictheme_drupal_cms_starter) - installs CivicTheme for work with Drupal CMS again should be used on a fresh install, due to the nature of Drupal CMS however, this is built on top of an already installed site with the CMS starter recipe.Helper Recipes
civictheme_drupal_cms_preinstall) - activates CivicTheme so the missing layout bug is avoided - this needs to be run before CivicTheme Drupal CMS StarterDevelopment Recipes
civictheme_content_generated_static) - static content that has been built with thecs_generated_contentmodule and exported. This enables us in future PRs to create a visual regression testing for Drupal builds.Other Changes
Updating Drupal CMS packages and other:
Screenshots
Summary by CodeRabbit
New Features
Chores