Пример #1
0
        public static async Task Main(string[] args)
        {
            var cancel   = new CancellationTokenSource();
            var jobQueue = new JobQueue();

            Console.WriteLine("Helium CI UI");

            var agentManager = await AgentManager.Load(Path.Combine(ConfDir, "agents"), cancel.Token);

            var projectManager = await ProjectManager.Load(Path.Combine(ConfDir, "projects"), jobQueue, cancel.Token);

            var server = new Grpc.Core.Server {
                Services = { BuildServer.BindService(new BuildServerImpl(agentManager, jobQueue)) },
                Ports    = { new ServerPort("0.0.0.0", 6000, ServerCredentials.Insecure) },
            };

            try {
                server.Start();

                try {
                    await CreateHostBuilder(agentManager, projectManager).Build().RunAsync();
                }
                finally {
                    cancel.Cancel();
                }
            }
            finally {
                await server.ShutdownAsync();
            }
        }