Remove ci_stop_populating_p_ci_build_tags feature flag

What does this MR do and why?

Removes the ci_stop_populating_p_ci_build_tags feature flag which controlled whether build tags are written to the p_ci_build_tags table.

With the feature flag enabled (now the default), build tags are stored in ci_job_definitions instead of p_ci_build_tags. This MR finalizes that migration by:

  1. Removing the feature flag and its YAML definition
  2. Removing BuildsTagsConfiguration - since uses_taggings? returned false, BulkInsert#insert! would return early without doing any work for builds. The class is no longer needed.
  3. Skipping the save_tags callback in Ci::Build - uses skip_callback :save, :after, :save_tags to prevent the inherited callback from Ci::Taggable from running, since tags are now stored in job definitions
  4. Removing Ci::BulkInsertableTags prepend from Ci::Build - this module's purpose was to suppress individual save_tags calls when bulk inserting. Since the save_tags callback is now skipped for builds, the prepend is unnecessary. The module itself remains for Ci::Runner which still uses bulk tag insertion.
  5. Removing with_bulk_insert_tags wrapper from pipeline creation - no longer needed since the save_tags callback is skipped for builds
  6. Removing the explicit pipeline.transaction block - was only needed for atomicity between pipeline.save! and bulk_insert_tags!
  7. Removing the unused taggable_statuses method
  8. Updating pending_builds factory - uses find_or_create_all_with_like_by_name instead of named to ensure tags exist when creating pending builds in tests

Changelog: removed

References

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Pedro Pombeiro

Merge request reports

Loading