Restructure studio frontend CI: centralize on shared reusable workflows#1119
Restructure studio frontend CI: centralize on shared reusable workflows#1119berfinyuksel wants to merge 2 commits into
Conversation
Build-only studio-frontend-build.yaml (triggered on assets/studio changes) plus a single frontend-publish-unified.yaml funnel that gates canary publishing on frontend changes and derives per-branch-line canary versions. Removes the local shared-*.yaml build/publish logic in favour of the reusables in workflows-collection-public. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
55945e3 to
c110739
Compare
|
There was a problem hiding this comment.
Pull request overview
This PR restructures the studio frontend CI by moving the bulk of build/lint/typecheck/publish logic into the shared pimcore/workflows-collection-public repository, leaving this repo with two thin caller workflows. It also commits a freshly rebuilt studio bundle (build hash changed from cc74eb38… to af044134…). The change centralizes CI so shared fixes propagate to all consumers, tightens security by replacing pull_request_target with pull_request, derives canary versions per branch line instead of a hardcoded base, adds concurrency control, and enables npm provenance.
Changes:
- Adds
studio-frontend-build.yaml(builds/commits the bundle onassets/studio/**changes) and rewritesfrontend-publish-unified.yamlinto a gate + publish funnel that only canary-publishes when frontend files actually changed and derives the canary base version per branch line. - Deletes the three local workflows (
frontend-build-pr.yaml,shared-frontend-build.yaml,shared-npm-publish.yaml) now superseded by the shared reusable workflows. - Regenerates and commits the studio build artifacts under a new build hash (updated
manifest.json,mf-manifest.json,mf-stats.json,main.html,exposeRemote.js, and the JS bundles/license files).
Reviewed changes
Copilot reviewed 13 out of 28 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/studio-frontend-build.yaml |
New thin caller that delegates the build to the shared reusable workflow, scoped to assets/studio/**. |
.github/workflows/frontend-publish-unified.yaml |
Rewritten gate/publish funnel; gates on real frontend diffs, computes per-line canary base, calls shared publish workflow with OIDC. |
.github/workflows/frontend-build-pr.yaml |
Deleted (superseded). |
.github/workflows/shared-frontend-build.yaml |
Deleted (moved to shared repo). |
.github/workflows/shared-npm-publish.yaml |
Deleted (moved to shared repo). |
src/Resources/public/studio/build/af044134-…/* |
New/updated generated bundle artifacts under the new build hash. |
src/Resources/public/studio/build/cc74eb38-…/* |
Old bundle manifest/entrypoints removed as part of the hash swap. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| permissions: | ||
| id-token: write # Required for OIDC | ||
| contents: write | ||
| uses: pimcore/workflows-collection-public/.github/workflows/reusable-frontend-publish-unified.yaml@main |



Restructure studio frontend CI: centralize on shared reusable workflows
Moves ~200 lines of build/publish logic into
workflows-collection-public. This repo keeps two thin callers.Files changed
studio-frontend-build.yamlfrontend-publish-unified.yamlfrontend-build-pr.yamlshared-frontend-build.yamlshared-npm-publish.yamlKey behavior changes
assets/studio/**changes, not on every branch push.assets/studio/**before publishing.2026.xand maintenance2026.1/2026.2/2.4, …) but only when frontend files actually changed — a gate job diffsassets/studio/**before publishing. Deleting a branch stops its canaries automatically; year-scheme maintenance branches were previously excluded by the branch filters.2026.x→2026.3.0), maintenance bumps the patch (2026.2→2026.2.3,2.4→2.4.5). Fixes stale2.4.0-canary.*versions sorting below current releases.-pull_requestreplacespull_request_target— fork code no longer runs with a write token.--provenance).Important notes for maintainers
frontend-publish-unified.yaml— the filename is registered as a trusted npm publisher (OIDC). Renaming breaks publishing until npmjs.com admin updates the config.build-output-pathset on both reusable calls — the reusable defaults to"."and would commit all changed files otherwise.