Skip to content

Add a descriptive empty state for runners

What does this MR do and why?

Increase feature adoption and feature discovery for runners by leading admin and group view users to register their first runner.

When search criteria does not match any runners, provide a helpful message in the admin and group views.

Changelog: changed

Fixes:

Screenshots or screen recordings

Both Admin Runners and Group Runners views have two new empty states:

no filters applied with at least one filter applied
image image
image

How to set up and validate locally

Admin Runners:

  1. Have no runners registered. See below to simulate this.
  2. Visit Admin -> Runners
  3. Verify the empty state and click the button
  4. Apply any filter
  5. Verify the empty state
You can simulate having no runners at all by applying this diff:
diff --git a/app/graphql/resolvers/ci/runners_resolver.rb b/app/graphql/resolvers/ci/runners_resolver.rb
index e221dfea4d0..ac54970c62a 100644
--- a/app/graphql/resolvers/ci/runners_resolver.rb
+++ b/app/graphql/resolvers/ci/runners_resolver.rb
@@ -37,6 +37,8 @@ class RunnersResolver < BaseResolver
                description: 'Sort order of results.'
 
       def resolve_with_lookahead(**args)
+        return []
+
         apply_lookahead(
           ::Ci::RunnersFinder
             .new(current_user: current_user, params: runners_finder_params(args))

Group Runners:

  1. Have no runners registered in your group. Create a new group if needed.
  2. Visit Group -> CI/CD -> Runners
  3. Verify the empty state and click the button
  4. Apply any filter
  5. Verify the empty state

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Miguel Rincon

Merge request reports