Introduce vue3_migrate_admin_runners to migrate Runner Admin to Vue 3

What does this MR do and why?

This change defines the vue3_migrate_admin_runners feature flag to allow Runner Admin features to run using Vue 3 in compatibility mode.

The behavior of the applications should be the same.

We use a user actor, as these views do not correspond to any specific group or project.

How does this work?

We use config/plugins/webpack_vue3_infection_plugin.js (for webpack) and config/helpers/vite_plugin_vue3_infection.mjs (for vite) to swap out the Vue 3 related dependencies and compatibility adapters when the ?vue3 query is added to an import.

This, in combination with a feature flag, allows us to dynamically insert a Vue 3 compat app into a page that still uses Vue 2 to enable a gradual rollout of Vue 3.

Fun fact! As feature flags are all enabled by default in rspec, the Vue 3 enabled code will be tested in our system/feature specs. This will ensure stability for features that are covered by our feature specs.

References

Screenshots or screen recordings

Note: Currently this solution is working on Vite, during development, while !227104 (merged) gets merged.

Before After
Screenshot_2026-03-20_at_11.53.05 Screenshot_2026-03-20_at_11.51.42

How to set up and validate locally

  1. Enabled vue3_migrate_admin_runners at https://gdk.test:3000/rails/features/
  2. Log in as admin to your GDK
  3. Verify the pages at:

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 Miguel Rincon

Merge request reports

Loading