Separate Pipelines Detail Bundle File

Summary

The app/assets/javascripts/pipelines directory has a few different Vue applications in it.

The pipeline_details_bundle.js contains the code to initialize all of the Vue applications. Often these initializations include code that only that specific app cares about.

We should split these initialize functions into their own files so that we can isolate these apps into their own codebases.

Improvements

We are migrating the apps in this directory to use GraphQL (see epic). In order to do this, we need to ensure that each app is isolated before we can start migrating them each to GraphQL. This will also help us work on migrations in parallel.

Another benefit is that we have cleaner, easier to follow, and more maintainable file structures inside of this directory.

This also ensures that we don't load extra unnecessary javascript code onto pages that don't need it.

Risks

Because these apps all use this same bundle file and mediator, it will be difficult to break them apart. There is a risk that we break some functionality in the process, but our spec tests will ensure that we don't merge breaking functionality into master.

Involved components

Edited by Scott Hampton