diff --git a/app/assets/javascripts/ci/merge_requests/graphql/subscriptions/ci_pipeline_creation_requests_updated.subscription.graphql b/app/assets/javascripts/ci/merge_requests/graphql/subscriptions/ci_pipeline_creation_requests_updated.subscription.graphql new file mode 100644 index 0000000000000000000000000000000000000000..3b0e3f49de1fe2495a4c6bde647b1e678caf1302 --- /dev/null +++ b/app/assets/javascripts/ci/merge_requests/graphql/subscriptions/ci_pipeline_creation_requests_updated.subscription.graphql @@ -0,0 +1,10 @@ +subscription ciPipelineCreationRequestsUpdated($mergeRequestId: MergeRequestID!) { + ciPipelineCreationRequestsUpdated(mergeRequestId: $mergeRequestId) { + mergeRequestId + pipelineCreationRequests { + status + pipelineId + error + } + } +} diff --git a/app/assets/javascripts/ci/pipeline_details/mixins/pipelines_mixin.js b/app/assets/javascripts/ci/pipeline_details/mixins/pipelines_mixin.js index 074e5b497590004eb78a0b8ddf9869a4825375a3..7d867c3fafdf9d1bb28adc474816b2fb0c5aaffb 100644 --- a/app/assets/javascripts/ci/pipeline_details/mixins/pipelines_mixin.js +++ b/app/assets/javascripts/ci/pipeline_details/mixins/pipelines_mixin.js @@ -144,8 +144,16 @@ export default { .then((response) => this.successCallback(response)) .catch((error) => this.errorCallback(error)); }, - setCommonData(pipelines, isUsingAsyncPipelineCreation = false) { - this.store.storePipelines(pipelines, isUsingAsyncPipelineCreation); + setCommonData( + pipelines, + isUsingAsyncPipelineCreation = false, + pipelineCreationInProgress = false, + ) { + this.store.storePipelines( + pipelines, + isUsingAsyncPipelineCreation, + pipelineCreationInProgress, + ); this.isLoading = false; this.updateGraphDropdown = true; this.hasMadeRequest = true; diff --git a/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js b/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js index 96c6448858e395b3c8606d3a4965dba86b8d9631..5de3fae9f4a0b563ae2ba7322ce6b687e7109015 100644 --- a/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js +++ b/app/assets/javascripts/ci/pipeline_details/stores/pipelines_store.js @@ -12,14 +12,9 @@ export default class PipelinesStore { this.state.isRunningMergeRequestPipeline = false; } - storePipelines(pipelines = [], isUsingAsyncPipelineCreation) { - if (isUsingAsyncPipelineCreation && pipelines.length) { - const firstPipelineFromTable = this.state.pipelines[0]; - const firstPipelineFromRequest = pipelines[0]; - - if (firstPipelineFromTable?.created_at !== firstPipelineFromRequest?.created_at) { - this.toggleIsRunningPipeline(false); - } + storePipelines(pipelines = [], isUsingAsyncPipelineCreation, pipelineCreationInProgress = false) { + if (isUsingAsyncPipelineCreation) { + this.toggleIsRunningPipeline(pipelineCreationInProgress); } this.state.pipelines = pipelines; diff --git a/app/assets/javascripts/commit/pipelines/legacy_pipelines_table_wrapper.vue b/app/assets/javascripts/commit/pipelines/legacy_pipelines_table_wrapper.vue index a975a83c300a6624f76615b14abe589287bb0b74..18c54ba5db5b9260e847f37d67b813d08f41edab 100644 --- a/app/assets/javascripts/commit/pipelines/legacy_pipelines_table_wrapper.vue +++ b/app/assets/javascripts/commit/pipelines/legacy_pipelines_table_wrapper.vue @@ -1,5 +1,5 @@