Skip to content

align frontend build and publish workflows#1118

Merged
berfinyuksel merged 2 commits into
2026.xfrom
generic-fe-build
Jul 7, 2026
Merged

align frontend build and publish workflows#1118
berfinyuksel merged 2 commits into
2026.xfrom
generic-fe-build

Conversation

@berfinyuksel

@berfinyuksel berfinyuksel commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

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

File Change
studio-frontend-build.yaml New — builds and commits the studio bundle
frontend-publish-unified.yaml Rewritten — single funnel for canary + release npm publishing
frontend-build-pr.yaml Deleted
shared-frontend-build.yaml Deleted
shared-npm-publish.yaml Deleted

Key behavior changes

  • Builds only trigger on assets/studio/** changes, not on every branch push.
  • Canary publishes only when frontend files actually changed — a gate job diffs assets/studio/** before publishing.
  • Canary publishes from every version branch (mainline 2026.x and maintenance 2026.1/2026.2/2.4, …) but only when frontend files actually changed — a gate job diffs assets/studio/** before publishing. Deleting a branch stops its canaries automatically; year-scheme maintenance branches were previously excluded by the branch filters.
  • Canary base version is no longer hardcoded — derived per branch line at publish time (branch names are valid semver ranges): mainline bumps the line's minor (2026.x2026.3.0), maintenance bumps the patch (2026.22026.2.3, 2.42.4.5). Fixes stale 2.4.0-canary.* versions sorting below current releases.- pull_request replaces pull_request_target — fork code no longer runs with a write token.
  • Concurrency control added — builds cancel on new push; publishes serialize to avoid dist-tag races.
  • npm publishes now carry provenance (--provenance).

Important notes for maintainers

  • Do not rename frontend-publish-unified.yaml — the filename is registered as a trusted npm publisher (OIDC). Renaming breaks publishing until npmjs.com admin updates the config.
  • Keep build-output-path set on both reusable calls — the reusable defaults to "." and would commit all changed files otherwise.
  • The gate fails open — if diff base is unavailable (new branch, force push), it publishes rather than silently skipping.

@berfinyuksel berfinyuksel requested a review from bluvulture as a code owner July 7, 2026 16:07
@berfinyuksel berfinyuksel requested review from Copilot and removed request for bluvulture July 7, 2026 16:07
@sonarqubecloud

sonarqubecloud Bot commented Jul 7, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the frontend CI/CD workflows to delegate their logic to centralized reusable workflows in pimcore/workflows-collection-public, aligning data-hub with the shared build/publish tooling used across other pimcore repositories. It replaces the previously repo-local build/publish/lint pipelines with thin caller workflows and introduces a lightweight "gate" job that decides when to publish a canary release based on frontend changes.

Changes:

  • Adds studio-frontend-build.yaml, a path-filtered caller that delegates lint/typecheck/build (and artifact commits) to reusable-studio-frontend-build.yaml@main.
  • Rewrites frontend-publish-unified.yaml to compute a publish decision plus a canary target-release in a gate job, then delegates publishing to reusable-frontend-publish-unified.yaml@main.
  • Removes the now-redundant local workflows shared-frontend-build.yaml, shared-npm-publish.yaml, and frontend-build-pr.yaml.

Reviewed changes

Copilot reviewed 13 out of 28 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/studio-frontend-build.yaml New path-filtered caller delegating the studio frontend build to the shared reusable workflow.
.github/workflows/frontend-publish-unified.yaml Replaces inline canary/release logic with a gate job (change detection + canary target version) that calls the shared publish workflow.
.github/workflows/shared-frontend-build.yaml Deleted; build/lint/typecheck logic moved to the central reusable workflow.
.github/workflows/shared-npm-publish.yaml Deleted; npm publish logic moved to the central reusable workflow.
.github/workflows/frontend-build-pr.yaml Deleted; PR/branch build handling superseded by studio-frontend-build.yaml.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@berfinyuksel berfinyuksel merged commit e67d5b3 into 2026.x Jul 7, 2026
5 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants