tfennelly for context I would check out these two links:
Github Creation Flow, especially steps 7-9: https://cloudbees.atlassian.net/wiki/display/UX/Pipeline+Creation#PipelineCreation-ConnectingtoGithub.com
Git Creation flow, steps 2.1 and 2.2: https://cloudbees.atlassian.net/wiki/display/UX/Pipeline+Creation#PipelineCreation-Git
So once the user presses the create button, the UI will call the backend API to begin creation, but that really only begins the process. Jenkins has saved and created the folder or pipeline, but it hasn't been indexed yet, so the data is just an empty shell, and navigating to any page in the UI at this moment isn't going to show anything useful. The UI will stay in the creation UI for a bit while "the system is working" and then perform some navigation to an appropriate page at the right time:
- When creating a Github org folder a.k.a. "auto discover": the UI should stay in the creation flow until all of the pipelines for that org have been created. This is the concept we've been discussing of getting events for when an org folder's indexing starts and completes. I suspect the progress indicator at the bottom would move through these states:
- (making API call to begin creation) - "Saving Changes..."
- (after API calls completes) - "Waiting for Indexing..."
- (after receiving "indexing started" event) - "Creating Pipelines"
- (after receiving "indexing complete" event) - "Pipelines Created!" - navigate back to Dashboard, show the pipelines that were created. If the UI could make a REST API call to fetch additional data about the Github Org folder (for example, the names of the pipelines in it, similar to a MBP's "branchNames" property) then we could show some cool info like "22 Pipelines Created!"
- When creating a single repo (either from Github or Git flow), it's not an org folder indexing that's relevant, but the indexing of a specific multibranch pipeline. The progress indicator would have these states...
- (making API call to begin creation) - "Saving Changes..."
- (after API calls completes) - "Waiting for Indexing..."
- (after receiving "indexing started" event) - "Creating Pipeline"
- (after receiving "indexing complete" event) - "Pipeline Created!" - navigate to /activity tab for that pipeline
For 2.4, we might eventually smarten it up a bit to navigate either to editor or to in-progress run if the repo had a Jenkinsfile but I don't think that really relates to any of the eventing we're talking about here, just an FYI.
So to summarize, perhaps this would serve as a suitable ticket description:
Add the following SSE events:
- Github org folder indexing started - include a HAL href to the org folder itself
- Github org folder indexing completed - also with HAL href
- Multibranch pipeline indexing started - with HAL href to MBP
- Multibranch pipeline indexing completed - with HAL href
tfennelly for context I would check out these two links:
Github Creation Flow, especially steps 7-9: https://cloudbees.atlassian.net/wiki/display/UX/Pipeline+Creation#PipelineCreation-ConnectingtoGithub.com
Git Creation flow, steps 2.1 and 2.2: https://cloudbees.atlassian.net/wiki/display/UX/Pipeline+Creation#PipelineCreation-Git
So once the user presses the create button, the UI will call the backend API to begin creation, but that really only begins the process. Jenkins has saved and created the folder or pipeline, but it hasn't been indexed yet, so the data is just an empty shell, and navigating to any page in the UI at this moment isn't going to show anything useful. The UI will stay in the creation UI for a bit while "the system is working" and then perform some navigation to an appropriate page at the right time:
For 2.4, we might eventually smarten it up a bit to navigate either to editor or to in-progress run if the repo had a Jenkinsfile but I don't think that really relates to any of the eventing we're talking about here, just an FYI.
So to summarize, perhaps this would serve as a suitable ticket description:
Add the following SSE events: