Page MenuHomePhabricator

[Infra] Check which extensions are using wdio and which are using cypress
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 what framework for E2E automated testing.

For all E2E test suites in our codebase, work which framework is in use.

Acceptance Criteria

  • A list of all components / repositories that include E2E tests, and which framework they are using

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 which are using cypress to [Infra] Check which extensions are using wdio and which are using cypress.Sep 26 2024, 12:55 PM
ItamarWMDE moved this task from Incoming to [DOT] Prioritized on the wmde-wikidata-tech board.

From the integration/config repo:

## List of dependencies
cat zuul/dependencies.yaml | yq -r 'reduce .[] as $x ([]; . + $x) | sort | unique | .[]' > deps.ext

## List of extensions
cat zuul/dependencies.yaml | yq -r '. | keys | .[]' > core.ext

## Join lists for complete list of active extensions
cat core.ext deps.ext | sort | uniq | grep -vE '^skins' > all_extensions.ext

## Get list of active skins
cat core.ext deps.ext | grep -E '^skins' | sort | uniq > all_skins.ext

## Clone all extensions
cat all_extensions.ext | (while read ext; do git clone ssh://arthurtaylor@gerrit.wikimedia.org:29418/mediawiki/extensions/${ext}.git; done)

## Clone all skins
cat all_skins.ext | (while read skin; do git clone ssh://arthurtaylor@gerrit.wikimedia.org:29418/mediawiki/${skin}.git; done)

## List out the repos that have an active 'selenium-test' action
find . -name "package.json" | xargs grep '"selenium-test" | cut -d'/' -f2 | sort | uniq
Extension Framework
AbuseFilterSelenium / wdio
AchievementBadgesSelenium / wdio
AdvancedSearchSelenium / wdio
CampaignEventsSelenium / wdio
CheckUserSelenium / wdio
CiteCypress
CodeMirrorSelenium / wdio
CommunityConfigurationCypress
CommunityRequestsSelenium / wdio
EchoSelenium / wdio
ElectronPdfServiceSelenium / wdio
EntitySchemaCypress
FacetedCategorySelenium / wdio
FileImporterSelenium / wdio
GrowthExperimentsCypress and Selenium / wdio
GuidedTourCypress
IPInfoSelenium / wdio
MathSelenium / wdio
MinervaNeueSelenium / wdio
NewsletterSelenium / wdio
PageTriageSelenium / wdio
PopupsSelenium / wdio
ProofreadPageSelenium / wdio
RelatedArticlesSelenium / wdio
ReportIncidentSelenium / wdio
RevisionSliderSelenium / wdio
SanctionsSelenium / wdio
TemplateWizardSelenium / wdio
TwoColConflictSelenium / wdio
VisualEditorSelenium / wdio
WikibaseSelenium / wdio
WikibaseLexemeCypress
WikiLambdaSelenium / wdio

@hoo This list might be useful for your investigation in T373999 .

The list in T374000#10339961 matches a codesearch pretty well (except that a handful of extra repos are included in codesearch). I think we can consider this task reviewed.