EXUI-4306 add Playwright tag filters and Jenkins worker controls#5007
Merged
RiteshHMCTS merged 3 commits intomasterfrom Mar 12, 2026
Merged
EXUI-4306 add Playwright tag filters and Jenkins worker controls#5007RiteshHMCTS merged 3 commits intomasterfrom
RiteshHMCTS merged 3 commits intomasterfrom
Conversation
danH-test
approved these changes
Mar 12, 2026
gregs-cgi
approved these changes
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jira link
See EXUI-4306
Change description
This PR tightens the CI functional test pipeline so parallel execution is less wasteful and harder to misuse from Jenkins.
It replaces hardcoded functional test worker assumptions with CPU-aware allocation already introduced in the branch, then hardens the surrounding behaviour:
adds stronger Playwright tag-filter validation so invalid/unknown tags fail early
prevents “green with no real tagged coverage” combinations by rejecting suite-wide exclusions unless explicitly allowed for local debugging
splits API Playwright onto a dedicated config so API runs are not coupled to UI tag-filter files
removes duplicate setup load from the hot parallel path by:
skipping redundant Playwright browser install in Jenkins parallel stages
allowing Codecept integration to skip its internal build when Jenkins has already prepared the app
improves Jenkins parameter descriptions with concrete valid examples so operators do not submit bad tag filters
brings Jenkinsfile validation into the standard yarn lint path
updates README guidance to match the actual CI behaviour
Testing done
Executed targeted validation for the changed paths:
npx playwright test playwright_tests_new/api/playwright-config-coverage.api.ts playwright_tests_new/api/playwright-ui-config-coverage.api.ts --config=playwright.api.config.ts
./node_modules/.bin/eslint playwright-config-utils.ts playwright.config.ts playwright.api.config.ts playwright.e2e.config.ts playwright.integration.config.ts playwright_tests_new/api/playwright-config-coverage.api.ts playwright_tests_new/api/playwright-ui-config-coverage.api.ts playwright_tests_new/E2E/test/tag-filter-sentinel.spec.ts playwright_tests_new/integration/test/tag-filter-sentinel.spec.ts playwright_tests_new/api/tag-filter-sentinel.api.ts
yarn lint:jenkinsfile
git diff --check -- Jenkinsfile_CNP README.md package.json playwright-config-utils.ts playwright.api.config.ts playwright.config.ts playwright.e2e.config.ts playwright.integration.config.ts playwright_tests_new/README.md playwright_tests_new/api/service-tag-filter.json playwright_tests_new/api/playwright-config-coverage.api.ts playwright_tests_new/api/playwright-ui-config-coverage.api.ts playwright_tests_new/E2E/test/tag-filter-sentinel.spec.ts playwright_tests_new/integration/test/tag-filter-sentinel.spec.ts playwright_tests_new/api/tag-filter-sentinel.api.ts
node -e "const {spawnSync}=require('node:child_process'); const script=require('./package.json').scripts['test:xuiIntegration']; const result=spawnSync('sh',['-n','-c',script],{stdio:'inherit'}); process.exit(result.status ?? 1);"
Results:
Playwright config coverage tests passed (12 passed)
ESLint passed
Jenkinsfile local Groovy parse passed
diff whitespace check passed
updated test:xuiIntegration shell script parsed successfully
Security Vulnerability Assessment
CVE Suppression: Are there any CVEs present in the codebase (either newly introduced or pre-existing) that are being intentionally suppressed or ignored by this commit?
Checklist