Check that a removed batched migration class is not referenced by existing migrations
In order to prevent incidents, we should check that all batched migration classes referenced by string actually exist in lib/gitlab/background_migration/. If the migration has already executed in .com, and for some reason we need to no-op a BBM and we remove the class, no CI job or check will fail. See !185296 (merged).
Implementation
Idea from @jon_jenkins:
there are a couple possible paths to this - seems like the easiest one would be a pipeline job that just checks the presence of all class names passed to the BBM helpers, which can be teased out using Rubocop's AST search function. So basically, iterate over every migration, record every referenced class, then try to call
eval('FooMigrationClass')on each one. If one has been removed, the pipeline throws an error