Skip to content

ci(e2e): harden shared catalog test execution - #4017

Draft
jczhuoMeta wants to merge 1 commit into
mainfrom
improve/e2e-pipeline-hardening
Draft

jczhuoMeta wants to merge 1 commit into
mainfrom
improve/e2e-pipeline-hardening

Conversation

@jczhuoMeta

@jczhuoMeta jczhuoMeta commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

Description

Hardens the shared Meta catalog E2E pipeline against cross-shard contention and slow catalog propagation.

  • Spreads the 12 E2E shards across three Meta test asset sets and caps each run at three active shards.
  • Reserves unique WordPress product and category ID ranges per run/shard to prevent remote catalog collisions.
  • Drains pending sync jobs before catalog validation and shares one drain across concurrent validators.
  • Removes redundant explicit drains from callers.
  • Avoids suite-wide retry replay, runs product CRUD with one worker, reduces the PR-only performance batch, and gives slower shards more appropriate timeouts.

This draft changes only test infrastructure and test code; it does not alter production behavior or user data handling.

Type of change

  • Tweak (test infrastructure reliability)

Checklist

  • I have commented my code, particularly in hard-to-understand areas, if any.
  • No PHP production files are changed.
  • I followed general Pull Request best practices.
  • I added focused tests and all JavaScript unit tests pass locally.
  • Full E2E validation is pending.
  • Documentation changes are not necessary because this affects test infrastructure only.

Changelog entry

N/A — test infrastructure only.

Test Plan

  • Run npm run test:js -- --runInBand (107 tests).
  • Run node --check on every changed JavaScript file.
  • Parse the workflow YAML and verify all 12 test/version combinations, balanced asset assignments, and unique shard indexes.
  • Verify the branch is one commit directly on latest main and its diff contains no Topics API or Privacy Sandbox changes.
  • Run git diff --check origin/main...HEAD.
  • Run the full GitHub E2E matrix against the real Meta test assets.

Screenshots

Not applicable.

@meta-cla meta-cla Bot added the CLA Signed label Aug 27, 2026
@jczhuoMeta jczhuoMeta added changelog: dev Developer-facing only change. type: technical debt This issue/PR represents/solves the technical debt of the project. labels Aug 27, 2026
@github-actions

github-actions Bot commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor

📦 Latest Plugin Build

Built at: 2026-11-05T10:26:15Z
Commit: 40d4f6d
Size: 1.9M

Download: Click here to download the plugin

To download: Click the link above → Scroll to bottom → Download "facebook-for-woocommerce" artifact

@jczhuoMeta
jczhuoMeta force-pushed the improve/e2e-pipeline-hardening branch from 879db9f to 3305d6f Compare August 27, 2026 16:08
@jczhuoMeta
jczhuoMeta changed the base branch from fix/e2e-pipeline-stability to main August 27, 2026 16:08
@ukilla

ukilla commented Sep 15, 2026

Copy link
Copy Markdown
Collaborator

Since this overlaps with #4015 and #4018, all three add a sync drain and asset lanes to the same workflow and sync.js.

Maybe we can use #4015 as the base for both this and #4018. Its catalog detection falls back to sequential when fewer than three catalogs are configured, where this one hard-fails, and it already serializes drains and waits for batch completion. Once it lands, the parts worth carrying over on top of it are the shared drain and Jest coverage from here, and the product-set membership polling and its Jest tests from #4018.

Summary:
Improve E2E reliability for shared Meta catalog assets. Spread shards across the available asset sets, isolate catalog object IDs, drain queued sync jobs before validation, reduce expensive retry replay, and tune workload and timeout limits.

Test Plan:
automation
- npm run test:js -- --runInBand
- node --check on all changed JavaScript files
- Parse the workflow YAML and verify all 12 matrix combinations and shard indexes
- git diff --check
@vahidkay-meta
vahidkay-meta force-pushed the improve/e2e-pipeline-hardening branch from 3305d6f to 12b9148 Compare November 5, 2026 10:25

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog: dev Developer-facing only change. CLA Signed type: technical debt This issue/PR represents/solves the technical debt of the project.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants