Exemplo n.º 1
0
        public async Task <bool> Run()
        {
            var manifestData = GetDeploymentManifest();

            Console.Write("Deployment environment: ");
            var deploymentEnvironment = Console.ReadLine();

            foreach (var deploymentTarget in manifestData.Manifest.Targets.Where(x => x.EnvironmentName == deploymentEnvironment))
            {
                Console.WriteLine($"Starting deployment for application [{deploymentTarget.ApplicationName}] and environment [{deploymentTarget.EnvironmentName}]");

                var setup = await GetDeploymentSetup(deploymentTarget);

                foreach (var configuration in deploymentTarget.Configurations)
                {
                    Console.WriteLine($"Starting deployment for configuration {configuration.Name}");

                    string cfgProfileId = await GetConfigurationProfileSummary(setup.Application, configuration.Name);

                    var dataFilePath = Path.Combine(manifestData.ManifestParentDirectory, configuration.File);
                    if (!File.Exists(dataFilePath))
                    {
                        Console.WriteLine($"Can't find file specified: [{dataFilePath}]'");
                        return(false);
                    }

                    var content = Encoding.ASCII.GetBytes(File.ReadAllText(dataFilePath));

                    using (var dataStream = new MemoryStream(content))
                    {
                        var createVersionResult = await _client.CreateHostedConfigurationVersionAsync(
                            new CreateHostedConfigurationVersionRequest
                        {
                            ApplicationId          = setup.Application.Id,
                            ConfigurationProfileId = cfgProfileId,
                            Content     = dataStream,
                            ContentType = "text/plain"
                        });

                        Console.WriteLine($"New configuration version created. Version: [{createVersionResult.VersionNumber}]");

                        var deploymentStartResult = await _deploymentService.StartDeployment(setup.Application.Id, setup.Environment.Id,
                                                                                             setup.DeploymentStrategy.Id, cfgProfileId, createVersionResult.VersionNumber.ToString());

                        await _deploymentService.WaitDeployment(deploymentStartResult);
                    }

                    Console.WriteLine($"Deployment for configuration {configuration.Name} finished.");
                }

                Console.WriteLine($"Deployment for application [{deploymentTarget.ApplicationName}] and environment [{deploymentTarget.EnvironmentName}] finished.");
            }

            Console.WriteLine($"Deployment using manifest [{manifestData.ManifestFilePath}] finished.");

            return(false);
        }
Exemplo n.º 2
0
        public async Task <bool> Run()
        {
            var app = await _userPollService.AskApplication();

            var env = await _userPollService.AskEnvironment(app);

            var cfgProfile = await _userPollService.AskConfigurationProfile(app);

            var strategy = await _userPollService.AskDeploymentStrategy();

            var version = await _userPollService.AskVersion(app.Id, cfgProfile.Id);

            var startDeploymentResult = await
                                        _deploymentService.StartDeployment(app.Id, env.Id, strategy.Id, cfgProfile.Id, version);

            await _deploymentService.WaitDeployment(startDeploymentResult);

            Console.WriteLine("Deployment finished");
            return(false);
        }