Page MenuHomePhabricator

[Infra] Check which extensions are using wdio and have parallelisation enabled
Closed, ResolvedPublic

Description

As part of the investigation of how to speed up Selenium / Web-based end-to-end tests in CI, we need to know which existing repositories are using Selenium / wdio.

Find all wdio.conf.js or equivalent Selenium configuration files in the mediawiki codebase. and report which extensions have what settings for maxInstances.

Acceptance Criteria

  • A list of repositories using Selenium / wdio, and the parallelisation settings for them.

Event Timeline

Prio Notes:

Impact AreaAffected
production / end usersno
monitoringno
development effortsyes
onboarding effortsno
additional stakeholdersno
ItamarWMDE renamed this task from Check which extensions are using wdio and have parallelisation enabled to [WB-CI] Check which extensions are using wdio and have parallelisation enabled.Sep 26 2024, 12:50 PM
ItamarWMDE renamed this task from [WB-CI] Check which extensions are using wdio and have parallelisation enabled to [Infra] Check which extensions are using wdio and have parallelisation enabled.

For your research, this is the output of me grepping the extensions and skins for maxInstances in wdio.conf.js:

$ find . -name "wdio.conf.js" | xargs grep maxInstances
./Sanctions/tests/selenium/wdio.conf.js:	maxInstances: 4
./VisualEditor/tests/selenium/wdio.conf.js:	maxInstances: 4
./TwoColConflict/tests/selenium/wdio.conf.js:	maxInstances: 4
./Popups/tests/selenium/wdio.conf.js:	maxInstances: 4
./PageTriage/tests/selenium/wdio.conf.js:	maxInstances: 4,
./CodeMirror/tests/selenium/wdio.conf.js:	maxInstances: 4
./AdvancedSearch/tests/selenium/wdio.conf.js:	maxInstances: 4
./AchievementBadges/tests/selenium/wdio.conf.js:	maxInstances: 4
./IPInfo/tests/selenium/wdio.conf.js:	maxInstances: 4,
./RevisionSlider/tests/selenium/wdio.conf.js:	maxInstances: 4
./Wikibase/client/data-bridge/tests/selenium/wdio.conf.js:	// set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec
./Wikibase/client/data-bridge/tests/selenium/wdio.conf.js:	// files and you set maxInstances to 10, all spec files will get tested at the same time
./Wikibase/client/data-bridge/tests/selenium/wdio.conf.js:	maxInstances: 1,
./Wikibase/client/data-bridge/tests/selenium/wdio.conf.js:		// maxInstances can get overwritten per capability. So if you have an in-house Selenium
./Wikibase/client/data-bridge/tests/selenium/wdio.conf.js:		maxInstances: 1,
./AbuseFilter/tests/selenium/wdio.conf.js:	maxInstances: 4
./ReportIncident/tests/selenium/wdio.conf.js:	maxInstances: 4,
./CommunityRequests/tests/selenium/wdio.conf.js:	maxInstances: 4
./GrowthExperiments/tests/selenium/wdio.conf.js:	maxInstances: 4,
./Echo/tests/selenium/wdio.conf.js:	maxInstances: 4
./CirrusSearch/tests/selenium/wdio.conf.js:	maxInstances: 1,
./CirrusSearch/tests/selenium/wdio.conf.js:		maxInstances: 1,
./CirrusSearch/tests/integration/config/wdio.conf.js:	// set maxInstances to 1; wdio will spawn 3 processes. Therefore, if you have 10 spec
./CirrusSearch/tests/integration/config/wdio.conf.js:	// files and you set maxInstances to 10, all spec files will get tested at the same time
./CirrusSearch/tests/integration/config/wdio.conf.js:	maxInstances: 1,
./CirrusSearch/tests/integration/config/wdio.conf.js:		// maxInstances can get overwritten per capability. So if you have an in-house Selenium
./CirrusSearch/tests/integration/config/wdio.conf.js:		maxInstances: 8,
./MinervaNeue/tests/selenium/wdio.conf.js:	maxInstances: 4
./CheckUser/tests/selenium/wdio.conf.js:	maxInstances: 4
Extension Framework
AbuseFilter4 processes
AchievementBadges4 processes
AdvancedSearch4 processes
CampaignEventsnot parallel
CheckUser4 processes
CirrusSearchup to 8 processes
CodeMirror4 processes
CommunityRequests4 processes
Echo4 processes
ElectronPdfServicenot parallel
FacetedCategorynot parallel
FileImporternot parallel
GrowthExperiments4 processes for selenium, cypress not parallel
IPInfo4 processes
Mathnot parallel
MinervaNeue4 processes
Newsletternot parallel
PageTriage4 processes
Popups4 processes
ProofreadPagenot parallel
RelatedArticlesnot parallel
ReportIncident4 processes
RevisionSlider4 processes
Sanctions4 processes
TemplateWizardnot parallel
TwoColConflict4 processes
VisualEditor4 processes
Wikibasenot parallel
WikiLambdanot parallel

I checked this list against codesearch, and it generally looks good.

The search also turns up mediawiki core, and a data-engineering repo. Am I right in assuming those are out of scope of this ticket?

Yeah - core is excluded because we're looking at the extensions job, and the data-engineering repo doesn't run as part of the CI checks so it's not contributing to the runtime of any jobs.