Skip to content

Commit

Permalink
add in hacks for nimbus and prysm
Browse files Browse the repository at this point in the history
  • Loading branch information
elasticroentgen committed May 13, 2024
1 parent 06cdafa commit 4fe9dc6
Showing 1 changed file with 51 additions and 13 deletions.
64 changes: 51 additions & 13 deletions Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,11 @@ static async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update,
{
string? repo = match.Groups[1].Value;
string branch = match.Groups[2].Value;
(bool triggerSuccess, string dockerImage, string runUrl) = await TriggerGitHubWorkflow(_gitHubToken, repo, branch);
(bool triggerSuccess, List<string> dockerImages, string runUrl) = await TriggerGitHubWorkflow(_gitHubToken, repo, branch);
if (triggerSuccess)
{
await SendResponse($"Your build was triggered\\. [View run on GitHub]({runUrl})\nDocker Image once run completed: `{dockerImage}`");
Console.WriteLine($"Build triggered for {repo}/{branch} [Run URL: {runUrl} | DockerImage: {dockerImage}]");
await SendResponse($"Your build was triggered\\. [View run on GitHub]({runUrl})\nDocker Image(s) once run completed:\n{dockerImages.Select(x => $"`{x}`\n")}");
Console.WriteLine($"Build triggered for {repo}/{branch} [Run URL: {runUrl} | DockerImage: {String.Join(':',dockerImages)}]");
}
else
{
Expand Down Expand Up @@ -154,7 +154,7 @@ await botClient.SendTextMessageAsync(
}
}

private static async Task<(bool IsSuccessStatusCode, string dockerImageUrl, string? runUrl)> TriggerGitHubWorkflow(string gitHubToken, string? repo, string branch)
private static async Task<(bool IsSuccessStatusCode, List<string> dockerImageUrls, string? runUrl)> TriggerGitHubWorkflow(string gitHubToken, string? repo, string branch)
{

// Register a runner with github
Expand Down Expand Up @@ -192,23 +192,23 @@ await botClient.SendTextMessageAsync(
if (!isFork)
{
// Not a fork - irgnore.
return (false, String.Empty, String.Empty);
return (false, null, String.Empty)!;
}

string? parentRepo = forkJson.RootElement.GetProperty("parent").GetProperty("full_name").GetString();

// Check if we have a workflow for the parent
if (!RepoToWorkflow.TryGetValue(parentRepo.ToLower(), out workflowId))
{
return (false,String.Empty, String.Empty);
return (false,null, String.Empty)!;
}

Console.WriteLine($"Found valid parent repo at {parentRepo}");
}
else
{
// Unable to grab repo meta - return error
return (false, String.Empty, String.Empty);
return (false, null, String.Empty)!;
}

}
Expand All @@ -217,14 +217,52 @@ await botClient.SendTextMessageAsync(

// Grab the docker base from the workflow
string dockerBase = Regex.Match(workflowId, @"build-push-(.+)\.yml").Groups[1].Value;
List<string> dockerImageUrls = new List<string>();

string dockerImageUrl = $"192.168.45.152:80/dh/ethpandaops/{dockerBase}:{branch}";
if (isFork)
if (dockerBase == "prysm")
{
string forkUser = repo.Split('/')[0];
dockerImageUrl = $"192.168.45.152:80/dh/ethpandaops/{dockerBase}:{forkUser}-{branch}";
if (isFork)
{
string forkUser = repo.Split('/')[0];
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/prysm-beacon-chain:{forkUser}-{branch}");
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/prysm-validator:{forkUser}-{branch}");
}
else
{
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/prysm-beacon-chain:{branch}");
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/prysm-validator:{branch}");
}
}

else if (dockerBase == "nimbus-eth2")
{
if (isFork)
{
string forkUser = repo.Split('/')[0];
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/nimbus-eth2:{forkUser}-{branch}");
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/nimbus-validator-client:{forkUser}-{branch}");
}
else
{
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/nimbus-eth2:{branch}");
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/nimbus-validator-client:{branch}");
}

}
else
{
if (isFork)
{
string forkUser = repo.Split('/')[0];
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/{dockerBase}:{forkUser}-{branch}");
}
else
{
dockerImageUrls.Add($"192.168.45.152:80/dh/ethpandaops/{dockerBase}:{branch}");
}
}



// Trigger job
var content = new StringContent(
JsonConvert.SerializeObject(requestData),
Expand All @@ -251,7 +289,7 @@ await botClient.SendTextMessageAsync(
}
}

return (response.IsSuccessStatusCode, dockerImageUrl, runUrl);
return (response.IsSuccessStatusCode, dockerImageUrls, runUrl);
}

static Task HandlePollingErrorAsync(ITelegramBotClient botClient, Exception exception, CancellationToken cancellationToken)
Expand Down

0 comments on commit 4fe9dc6

Please sign in to comment.