diff options
Diffstat (limited to 'src/marlin.agents.shell/Program.cs')
| -rw-r--r-- | src/marlin.agents.shell/Program.cs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/marlin.agents.shell/Program.cs b/src/marlin.agents.shell/Program.cs index 02a0bc9..75ea8ad 100644 --- a/src/marlin.agents.shell/Program.cs +++ b/src/marlin.agents.shell/Program.cs @@ -1,9 +1,20 @@ using System.Runtime.InteropServices; +using System.Threading.Channels; +using Grpc.Net.Client; using marlin.agents.shell; +using marlin.core.contracts; +using marlin.core.functional; using marlin.core.models; +using marlin.core.models.meta; +using marlin.core.models.plan; +using marlin.core.util; +using ProtoBuf.Grpc.Client; DotNetEnv.Env.NoClobber().TraversePath().Load(); +var jobInstanceDir = Path.Combine(CommonPaths.AgentRoot, "instance"); +Directory.CreateDirectory(jobInstanceDir); + var client = MarlinApiClient.FromEnvironment(); var capabilities = new CapabilitySet(); @@ -16,5 +27,17 @@ AgentConfiguration config = await client.Handshake(status); Console.WriteLine($"IAM: {config.Name}"); Console.WriteLine($"MCJ: {config.MaxConcurrentJobs}"); -var job = await client.QueueNextJob(); -Console.WriteLine(job == null ? "No pending jobs." : $"Claimed job {job.Id}: {job.Recipe}"); +while (true) +{ + var job = await client.QueueNextJob(); + Console.WriteLine(job == null ? "No pending jobs." : $"Claimed job {job.Id}: {job.Recipe}"); + + if (job != null) + { + GitBinaryClient gitClient = new(); + var uow = new JobUnitOfWork(job, client, gitClient); + await uow.Run(); + } + + await Task.Delay(TimeSpan.FromSeconds(5)); +}
\ No newline at end of file |
