Skip to content

fix(ci): deploy WordPress.org assets via ASSETS_DIR + dedicated asset-update workflow#3880

Merged
jasonbahl merged 1 commit into
mainfrom
fix/wporg-assets-deploy
Jun 4, 2026
Merged

fix(ci): deploy WordPress.org assets via ASSETS_DIR + dedicated asset-update workflow#3880
jasonbahl merged 1 commit into
mainfrom
fix/wporg-assets-deploy

Conversation

@jasonbahl

Copy link
Copy Markdown
Collaborator

Problem

The brand refresh assets merged in #3877 are on main (and got into the 2.15.0 tag tree), and core 2.15.0 did deploy to WordPress.org afterward — yet the new banners/icons/screenshots never appeared on any plugin's .org page.

Root cause: the WordPress Plugin Deploy step in release-please.yml never set ASSETS_DIR, so the 10up action defaulted to a repo-root .wordpress-org that doesn't exist in this monorepo. Its own log confirms it:

ℹ︎ ASSETS_DIR is .wordpress-org
ℹ︎ No assets directory found; skipping asset copy

So the SVN assets/ directory (which .org actually displays from) was never synced. The .wordpress-org files that do show up under trunk/.wordpress-org/ and tags/.../.wordpress-org/ are a red herring — .org ignores those. All four plugins (wp-graphql, wp-graphql-ide, wp-graphql-smart-cache, wp-graphql-acf) deployed in the same batch and hit the same skip.

Changes

  1. release-please.yml — set ASSETS_DIR to each plugin's source .wordpress-org dir (package_path-relative), so releases sync the assets/ folder. Source-relative rather than build-relative so it works for all four plugins regardless of .distignore, and for both new releases and redeploy_tag re-deploys.

  2. plugins/wp-graphql/.distignore — exclude /.wordpress-org (matching ide/acf/smart-cache) so core stops bundling assets into trunk/ and the plugin zip. They reach .org via ASSETS_DIR now, so keeping them in the build was redundant bloat.

  3. .github/workflows/deploy-wporg-assets.yml (new) — asset-only deploys via 10up/action-wordpress-plugin-asset-update, because .org assets are decoupled from plugin versions and shouldn't require a release:

    • Auto on push to main touching plugins/*/.wordpress-org/** → only the changed plugins deploy. Asset changes go live on merge — this is what would have prevented this bug.
    • Manual workflow_dispatch with a component picker (all or one plugin) for backfills/redeploys.
    • Reuses the same component → wp_org_slug mapping from release-please-config.json.

Getting the current rebrand live

After this merges, run Deploy WordPress.org Assetsworkflow_dispatchcomponent: all to push the already-merged brand assets to all four plugin pages — no release required. (The manual trigger only appears in the Actions UI once the workflow is on main.)

Validation

  • Both workflow YAML files parse (js-yaml).
  • Slug resolution verified against the real release-please-config.json for all four components.

…-update workflow

The release deploy step never set ASSETS_DIR, so the 10up action defaulted to a
repo-root .wordpress-org that does not exist in this monorepo and logged
"No assets directory found; skipping asset copy" — the SVN assets/ folder
(banners/icons/screenshots) was never synced, so the brand refresh shipped in
the plugin code but never appeared on the .org plugin pages.

- release-please.yml: set ASSETS_DIR to the plugin's source .wordpress-org dir
  (package_path-relative, so it works for all four plugins regardless of
  .distignore and for both new releases and redeploy_tag re-deploys).
- plugins/wp-graphql/.distignore: exclude /.wordpress-org (matching the other
  plugins) so core stops bundling assets into trunk and the plugin zip.
- deploy-wporg-assets.yml (new): asset-only deploys via 10up's
  action-wordpress-plugin-asset-update. Auto-runs on push to main touching
  plugins/*/.wordpress-org/** (only the changed plugins), plus a manual
  workflow_dispatch with a component picker for backfills/redeploys. Reuses the
  same component -> wp_org_slug mapping from release-please-config.json.
@vercel

vercel Bot commented Jun 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
wpgraphql-com Ready Ready Preview, Comment Jun 4, 2026 2:26pm

@jasonbahl jasonbahl merged commit 5f301b1 into main Jun 4, 2026
38 checks passed
@jasonbahl jasonbahl deleted the fix/wporg-assets-deploy branch June 4, 2026 14:27
jasonbahl added a commit that referenced this pull request Jun 4, 2026
Sync main (split PRs #3877/#3878/#3879 + asset-pipeline #3880/#3882/#3883) into
the IDE rebuild branch. Conflicts were all IDE release-metadata + the plugin
header; resolved as:

- package.json / wpgraphql-ide.php Version / readme.txt Stable tag: 4.5.0
  (the release-please manifest value; release-please bumps to 5.0.0 at release —
  the in-repo version tracks the last release per the plugin's CLAUDE.md).
- CHANGELOG.md / readme.txt changelog: union — keep the 5.0.0 notes AND main's
  released 4.5.0 entry.
- Requires at least: 6.1 (not the 7.0 the branch had staged). WordPress 7.0's
  i18n features (.l10n.php 6.5, JIT textdomain 6.7) degrade gracefully and no
  runtime gate gates on 7.0, so there's no reason to lock out current installs.
  Dropped the "raised floor to 7.0" breaking-change note and aligned CLAUDE.md +
  i18n docs to 6.1.
- Tested up to: 7.0 (WordPress 7.0 is released).
jasonbahl added a commit to josephfusco/wp-graphql that referenced this pull request Jun 4, 2026
Sync main (split PRs wp-graphql#3877/wp-graphql#3878/wp-graphql#3879 + asset pipeline wp-graphql#3880/wp-graphql#3882/wp-graphql#3883) onto
the IDE rebuild branch, on top of Joe's floor/CI commits (floor 6.1, WP 7.0 CI
coverage + tested-up-to). Conflicts (all IDE release metadata) resolved as:

- Version / Stable tag / package.json: 4.5.0 (release-please manifest value;
  release-please bumps to 5.0.0 at release — in-repo version tracks last release
  per the plugin's CLAUDE.md).
- CHANGELOG.md / readme.txt changelog: union — keep the 5.0.0 notes AND main's
  released 4.5.0 entry. Dropped the now-inaccurate "raised floor to 7.0"
  breaking-change note (Joe set the floor to 6.1) and the 7.0-floor framing in
  the i18n docs.
- Requires at least: 6.1 / Tested up to: 7.0 — kept Joe's values.
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