fun deployBuild()

in src/com/intellij/idea/plugin/hybris/tools/ccv2/CCv2Service.kt [417:457]


    fun deployBuild(
        project: Project,
        subscription: CCv2Subscription,
        environment: CCv2EnvironmentDto,
        build: CCv2BuildDto,
        mode: CCv2DeploymentDatabaseUpdateModeEnum,
        strategy: CCv2DeploymentStrategyEnum
    ) {
        coroutineScope.launch {
            withBackgroundProgress(project, "Deploying CCv2 Build - ${build.code}...") {
                project.messageBus.syncPublisher(TOPIC_BUILDS).onBuildDeploymentStarted(subscription, build)

                val ccv2Token = getCCv2Token(subscription)
                if (ccv2Token == null) {
                    project.messageBus.syncPublisher(TOPIC_BUILDS).onBuildDeploymentRequested(subscription, build)
                    return@withBackgroundProgress
                }

                try {
                    CCv2Api.getInstance()
                        .deployBuild(ccv2Token, subscription, environment, build, mode, strategy)
                        .also {
                            Notifications.create(
                                NotificationType.INFORMATION,
                                "CCv2: Build deployment has been requested.",
                                """
                                    Code: ${build.code}<br>
                                    Subscription: $subscription<br>
                                """.trimIndent()
                            )
                                .hideAfter(10)
                                .notify(project)
                        }
                } catch (e: SocketTimeoutException) {
                    notifyOnTimeout(subscription)
                } catch (e: RuntimeException) {
                    notifyOnException(subscription, e)
                }
            }
        }
    }