Skip to content

Bug 2019457 - Refactor CI/CD test cases to make it easier to incorporate automated tests from extensions into the normal test framework#2553

Open
dklawren wants to merge 6 commits intomozilla-bteam:masterfrom
dklawren:qa-refactor
Open

Bug 2019457 - Refactor CI/CD test cases to make it easier to incorporate automated tests from extensions into the normal test framework#2553
dklawren wants to merge 6 commits intomozilla-bteam:masterfrom
dklawren:qa-refactor

Conversation

@dklawren
Copy link
Copy Markdown
Collaborator

  • Move all of the helper libraries from qa/t/lib to Bugzilla/QA
  • Move the config file to conf/
  • Move the generate_test_data.pl to scripts/
  • Update all of the current scripts to use the new Bugzilla/QA location
  • Update the Github actions config to use the new way of calling all of the tests

…ated automated tests from extensions into the normal test framework
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the CI/QA test harness to use new Bugzilla::QA::* and Bugzilla::Test::* helper modules, relocates QA configuration/scripts, and updates GitHub Actions to run tests using the new invocation patterns.

Changes:

  • Updated test files to import helpers from Bugzilla::QA::* / Bugzilla::Test::* and adjusted @INC (use lib) accordingly.
  • Moved/updated QA config and data generation script paths (e.g., config under conf/, generator under scripts/).
  • Modified Docker/GitHub Actions test commands to pass explicit prove args/patterns.

Reviewed changes

Copilot reviewed 123 out of 124 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
t/critic.t Switches from Support::Files to Bugzilla::Test::Files and updates use lib.
t/bmo/passwords.t Uses Bugzilla::QA::Util and updates use lib.
t/bmo/oauth2-client.t Uses Bugzilla::QA::Util and updates use lib.
t/bmo/bounced-emails.t Uses Bugzilla::QA::Util and updates use lib.
t/012throwables.t Updates helper namespaces; changes error-usage scanning logic.
t/011pod.t Switches to Bugzilla::Test::Files and updates test count.
t/010dependencies.t Switches to Bugzilla::Test::Files and updates module extraction loop.
t/009bugwords.t Switches to Bugzilla::Test::{Files,Templates} and updates include paths.
t/008filter.t Switches to Bugzilla::Test::Templates and updates include paths.
t/007util.t Switches to Bugzilla::Test::Files and updates use lib.
t/006spellcheck.t Switches to Bugzilla::Test::Files and updates test list.
t/005whitespace.t Switches to Bugzilla::Test::{Files,Templates} and updates test list.
t/004template.t Switches to Bugzilla::Test::Templates and updates use lib.
t/002goodperl.t Switches to Bugzilla::Test::Files and updates test list.
t/001compile.t Switches to Bugzilla::Test::Files and uses Bugzilla::Test::Systemexec for compile checks.
scripts/generate_test_data.pl Simplifies @INC setup; reads config from conf/selenium_test.conf by default.
scripts/entrypoint.pl Updates how tests are invoked and where test data generation runs from.
qa/t/webservice_user_offer_account_by_email.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_user_login_logout.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_user_get.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_user_create.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_product_get.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_product_create.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_product.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_jsonp.t Uses Bugzilla::QA::Util and updates client callsite.
qa/t/webservice_group_create.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_bugzilla.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_bug_update_see_also.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_update.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_search.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_legal_values.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_bug_history.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_get_bugs.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_get.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_fields.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_bug_create.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/webservice_bug_comments.t Updates isa checks to Bugzilla::QA::RPC::* and imports Bugzilla::QA::*.
qa/t/webservice_bug_attachments.t Updates generator file path and isa checks to Bugzilla::QA::RPC::*.
qa/t/webservice_bug_add_comment.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/webservice_bug_add_attachment.t Updates isa checks to Bugzilla::QA::RPC::* and imports Bugzilla::QA::Util.
qa/t/rest_triage_owners.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_see_also.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/rest_search_api.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_reminders.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_relationship_trees.t Uses Bugzilla::QA::{Util,Tests} and updates use lib.
qa/t/rest_pulsebot.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_last_change_time_non_bot.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_lando_uplift.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_group_get.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_github_push_comment.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_github_pull_request.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_components.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_classification.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_bugzilla.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/rest_bug.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/archived/test_email_preferences.t Uses Bugzilla::QA::Util.
qa/t/4_test_webhooks.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_votes.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_user_privs.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_user_preferences.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_user_matching.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_user_groups.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_time_summary.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_target_milestones.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_sudo_sessions.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_status_whiteboard.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_show_all_products.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/4_test_shared_searches.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_see_also.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_security.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_search.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_saved_searches.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_sanity_check.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_require_login.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_reminders.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_rate_limit.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_qa_contact.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_private_attachments.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_new_release.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_net_attachments.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/3_test_component_graveyard.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_milestones.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_login_totp.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_login_duo.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_login.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_lockout.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_keywords.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_groups.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_flags2.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_flags.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_enter_new_bug.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_edit_products_properties.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_dependencies.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/2_test_default_groups.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_duo_requirement.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_custom_fields_admin.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_custom_fields.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_create_user_accounts.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_cookie_consent.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_config.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_classifications.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_choose_priority.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_bug_edit.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_bmo_retire_values.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_bmo_enter_new_bug.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_bmo_autolinkification.t Uses Bugzilla::QA::Util and updates use lib.
qa/t/1_test_attention.t Uses Bugzilla::QA::Util and updates use lib.
external_test_api.pl Updates hardcoded selenium config path to /app/conf/selenium_test.conf.
extensions/JiraWebhookSync/t/bmo/jira_webhook_sync.t Uses Bugzilla::QA::Util and updates use lib.
extensions/BMO/t/bmo/recorded_future.t Uses Bugzilla::QA::Util and updates use lib.
extensions/BMO/t/bmo/bmo_etl.t Uses Bugzilla::QA::Util and updates use lib.
docker-compose.test.yml Updates BZ_QA_CONF_FILE to point at /app/conf/selenium_test.conf.
conf/selenium_test.conf Updates attachment fixture path to /app/conf/patch.diff.
conf/patch.diff Adds patch fixture under conf/.
Bugzilla/Test/Templates.pm Renames package to Bugzilla::Test::Templates and updates helper imports.
Bugzilla/Test/Systemexec.pm Renames package to Bugzilla::Test::Systemexec.
Bugzilla/Test/Files.pm Renames package to Bugzilla::Test::Files.
Bugzilla/QA/Util.pm Renames package to Bugzilla::QA::Util, updates config path default, updates RPC requires, and adjusts Selenium helper behavior.
Bugzilla/QA/Tests.pm Renames package to Bugzilla::QA::Tests.
Bugzilla/QA/RPC/XMLRPC.pm Renames package to Bugzilla::QA::RPC::XMLRPC and updates base class.
Bugzilla/QA/RPC/JSONRPC.pm Renames package(s) to Bugzilla::QA::RPC::* and updates class references.
Bugzilla/QA/RPC.pm Renames package to Bugzilla::QA::RPC and updates imports and isa checks.
Bugzilla/QA/REST.pm Renames QA REST client module (but currently has a package naming issue).
.github/workflows/ci.yml Updates CI to pass explicit prove args/patterns for sanity/webservice/selenium/bmo tests.
Comments suppressed due to low confidence (2)

Bugzilla/QA/REST.pm:12

  • Bugzilla/QA/REST.pm declares package Bugzillas::QA::REST; (extra “s”), but the rest of the file references Bugzilla::QA::REST (EXPORT var, bless). This mismatch will prevent the module from being loaded/used correctly. Rename the package to Bugzilla::QA::REST (and ensure all internal package-qualified variables match).
    Bugzilla/QA/Util.pm:332
  • go_to_bug removed the previous delay that was explicitly documented as avoiding a race (“Sometimes we try to click edit bug before it is ready…”). There isn’t an alternative wait here before clicking mode-btn-readonly, so this may reintroduce intermittent Selenium failures. Please add an explicit wait for the edit button to be present/clickable (preferred) or restore the short delay.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread t/012throwables.t
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread scripts/entrypoint.pl
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
@dklawren dklawren changed the title Bug 2019457 - Refactor CI/CD test cases to make it easier to incorporated automated tests from extensions into the normal test framework Bug 2019457 - Refactor CI/CD test cases to make it easier to incorporate automated tests from extensions into the normal test framework Mar 4, 2026
…ated automated tests from extensions into the normal test framework
* upstream/qa-refactor: (48 commits)
  Fixed issue with null glob
  Bug 2019457 - Refactor CI/CD test cases to make it easier to incorporated automated tests from extensions into the normal test framework
  Bug 2029522 - Modernize CI workflow: docker compose v2 and actions/checkout@v4
  Bug 2028222 - Pasting multi-line text after selecting multi-line text does not overwrite, but applies markup for link
  [skip ci] Bug 2012634 - "Phabricator Revisions" table overflows on X axis on mobile
  Bug 2023761 - [GITHUB] Allow use of individual api keys for pull requests and push comments instead of single share secret
  Bumped version to 20260407.1
  Bug 2029523 - Selenium tests flake with element click intercepted errors in CI
  Bug 1934846 - Show both banners if a bug is marked as security sensitive and moco confidential
  Bug 2029520 - ReadTheDocs webhook has stopped triggering builds since Feb 17 (additional fixes needed)
  Bug 2029520 - ReadTheDocs webhook has stopped triggering builds since Feb 17
  Bug 2029518 - Clean up outdated content and fix errors in README
  Bug 2029517 - Update CONTRIBUTING.md with current conventions and fix stale links
  Bug 2028704 - [PHAB-BOT] The feed query has a bug where the last feed id is not being updated properly when a single story fails due to database rollback
  Bumped version to 20260325.1
  Bug 2026225 - PhabBugz: Increase number of feed story retries from 5 to 100 to fix times when the gap may be more than 5
  Bug 2024216 - Emoji comment reaction tooltips not visible on old closed bugs when adding reactions is disabled
  Bumped version to 20260323.3
  Bumped version to 20260323.2
  Bumped version to 20260323.1
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants