From 1fb2b91c11ec94b4dc5023871ae7f015651ff7c0 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 20 Aug 2025 16:23:46 +0200 Subject: [PATCH 01/13] Rename aspire project to aspire --- docs-builder.sln | 3 +-- .../Elastic.Assembler.IntegrationTests.csproj | 2 +- .../{Elastic.Documentation.Aspire => aspire}/AppHost.cs | 1 + .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../{Elastic.Documentation.Aspire => aspire}/appsettings.json | 0 .../aspire.csproj} | 1 + 7 files changed, 4 insertions(+), 3 deletions(-) rename tests-integration/{Elastic.Documentation.Aspire => aspire}/AppHost.cs (99%) rename tests-integration/{Elastic.Documentation.Aspire => aspire}/Properties/launchSettings.json (100%) rename tests-integration/{Elastic.Documentation.Aspire => aspire}/appsettings.Development.json (100%) rename tests-integration/{Elastic.Documentation.Aspire => aspire}/appsettings.json (100%) rename tests-integration/{Elastic.Documentation.Aspire/Elastic.Documentation.Aspire.csproj => aspire/aspire.csproj} (94%) diff --git a/docs-builder.sln b/docs-builder.sln index b9be4d877..7fb8bba30 100644 --- a/docs-builder.sln +++ b/docs-builder.sln @@ -129,7 +129,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests-integration", "tests- EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elastic.Assembler.IntegrationTests", "tests-integration\Elastic.Assembler.IntegrationTests\Elastic.Assembler.IntegrationTests.csproj", "{A272D3EC-FAAF-4795-A796-302725382AFF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elastic.Documentation.Aspire", "tests-integration\Elastic.Documentation.Aspire\Elastic.Documentation.Aspire.csproj", "{4DFECE72-4A1F-4B58-918E-DCD07B585231}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aspire", "tests-integration\aspire\aspire.csproj", "{4DFECE72-4A1F-4B58-918E-DCD07B585231}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elastic.Documentation.ServiceDefaults", "src\Elastic.Documentation.ServiceDefaults\Elastic.Documentation.ServiceDefaults.csproj", "{2A83ED35-B631-4F02-8D4C-15611D0DB72C}" EndProject @@ -286,7 +286,6 @@ Global {111E7029-BB29-4039-9B45-04776798A8DD} = {BE6011CC-1200-4957-B01F-FCCA10C5CF5A} {164F55EC-9412-4CD4-81AD-3598B57632A6} = {67B576EE-02FA-4F9B-94BC-3630BC09ECE5} {A272D3EC-FAAF-4795-A796-302725382AFF} = {BCAD38D5-6C83-46E2-8398-4BE463931098} - {4DFECE72-4A1F-4B58-918E-DCD07B585231} = {BCAD38D5-6C83-46E2-8398-4BE463931098} {2A83ED35-B631-4F02-8D4C-15611D0DB72C} = {BE6011CC-1200-4957-B01F-FCCA10C5CF5A} {B042CC78-5060-4091-B95A-79C71BA3908A} = {BE6011CC-1200-4957-B01F-FCCA10C5CF5A} {F30B90AD-1A01-4A6F-9699-809FA6875B22} = {B042CC78-5060-4091-B95A-79C71BA3908A} diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj b/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj index 563a928ac..04ef8cffa 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj +++ b/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj @@ -10,7 +10,7 @@ - + diff --git a/tests-integration/Elastic.Documentation.Aspire/AppHost.cs b/tests-integration/aspire/AppHost.cs similarity index 99% rename from tests-integration/Elastic.Documentation.Aspire/AppHost.cs rename to tests-integration/aspire/AppHost.cs index a8e4e4d8f..079045b50 100644 --- a/tests-integration/Elastic.Documentation.Aspire/AppHost.cs +++ b/tests-integration/aspire/AppHost.cs @@ -2,6 +2,7 @@ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information +using Aspire.Hosting; using Elastic.Documentation; using Microsoft.Extensions.Logging; diff --git a/tests-integration/Elastic.Documentation.Aspire/Properties/launchSettings.json b/tests-integration/aspire/Properties/launchSettings.json similarity index 100% rename from tests-integration/Elastic.Documentation.Aspire/Properties/launchSettings.json rename to tests-integration/aspire/Properties/launchSettings.json diff --git a/tests-integration/Elastic.Documentation.Aspire/appsettings.Development.json b/tests-integration/aspire/appsettings.Development.json similarity index 100% rename from tests-integration/Elastic.Documentation.Aspire/appsettings.Development.json rename to tests-integration/aspire/appsettings.Development.json diff --git a/tests-integration/Elastic.Documentation.Aspire/appsettings.json b/tests-integration/aspire/appsettings.json similarity index 100% rename from tests-integration/Elastic.Documentation.Aspire/appsettings.json rename to tests-integration/aspire/appsettings.json diff --git a/tests-integration/Elastic.Documentation.Aspire/Elastic.Documentation.Aspire.csproj b/tests-integration/aspire/aspire.csproj similarity index 94% rename from tests-integration/Elastic.Documentation.Aspire/Elastic.Documentation.Aspire.csproj rename to tests-integration/aspire/aspire.csproj index 44282aa75..2a931c6d7 100644 --- a/tests-integration/Elastic.Documentation.Aspire/Elastic.Documentation.Aspire.csproj +++ b/tests-integration/aspire/aspire.csproj @@ -9,6 +9,7 @@ enable 72f50f33-6fb9-4d08-bff3-39568fe370b3 false + Elastic.Documentation.Aspire From a9b64846330ab19179b71a094d9580463b3faec4 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 20 Aug 2025 19:52:39 +0200 Subject: [PATCH 02/13] Migrate Aspire project to root directory and refactor AppHost implementation. --- aspire/AppHost.cs | 136 ++++++++++++++++++ .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../aspire => aspire}/appsettings.json | 0 aspire/aspire.csproj | 31 ++++ docs-builder.sln | 2 +- .../AssembleFixture.cs | 2 +- .../Elastic.Assembler.IntegrationTests.csproj | 8 +- tests-integration/aspire/AppHost.cs | 81 ----------- tests-integration/aspire/aspire.csproj | 27 ---- 10 files changed, 173 insertions(+), 114 deletions(-) create mode 100644 aspire/AppHost.cs rename {tests-integration/aspire => aspire}/Properties/launchSettings.json (100%) rename {tests-integration/aspire => aspire}/appsettings.Development.json (100%) rename {tests-integration/aspire => aspire}/appsettings.json (100%) create mode 100644 aspire/aspire.csproj delete mode 100644 tests-integration/aspire/AppHost.cs delete mode 100644 tests-integration/aspire/aspire.csproj diff --git a/aspire/AppHost.cs b/aspire/AppHost.cs new file mode 100644 index 000000000..295624b69 --- /dev/null +++ b/aspire/AppHost.cs @@ -0,0 +1,136 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information + + +using ConsoleAppFramework; +using Elastic.Documentation; +using Elastic.Documentation.Configuration; +using Microsoft.Extensions.Logging; + +// ReSharper disable UnusedVariable +// ReSharper disable RedundantAssignment +// ReSharper disable NotAccessedVariable + +var logLevel = LogLevel.Information; +GlobalCommandLine.Process(ref args, ref logLevel, out var skipPrivateRepositories); +var globalArguments = new List(); +if (skipPrivateRepositories) + globalArguments.Add("--skip-private-repositories"); + +if (logLevel != LogLevel.Information) +{ + globalArguments.Add("--log-level"); + globalArguments.Add(logLevel.ToString()); +} + +await ConsoleApp.RunAsync(args, BuildAspireHost); +return; + +// ReSharper disable once RedundantLambdaParameterType +async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipPrivateRepositories, Cancel ctx) +{ + var builder = DistributedApplication.CreateBuilder(args); + + var llmUrl = builder.AddParameter("LlmGatewayUrl", secret: true); + var llmServiceAccountPath = builder.AddParameter("LlmGatewayServiceAccountPath", secret: true); + + var elasticsearchUrl = builder.AddParameter("DocumentationElasticUrl", secret: true); + var elasticsearchApiKey = builder.AddParameter("DocumentationElasticApiKey", secret: true); + + var cloneAll = builder.AddProject("assembler-clone"); + var cloneDirectory = Path.Combine(Paths.GetSolutionDirectory()!.FullName, ".artifacts", "checkouts", "current"); + cloneAll = cloneAlways || !Directory.Exists(cloneDirectory) + ? cloneAll.WithArgs(["repo", "clone-all", .. globalArguments]) + : cloneAll.WithArgs(["repo", "clone-all", "--help"]); + + var buildAll = builder.AddProject("assembler-build") + .WithArgs(["repo", "build-all", .. globalArguments]) + .WaitForCompletion(cloneAll) + .WithParentRelationship(cloneAll); + + var elasticsearchLocal = builder.AddElasticsearch("elasticsearch-local") + .WithEnvironment("LICENSE", "trial"); + if (!startElasticsearch) + elasticsearchLocal = elasticsearchLocal.WithExplicitStart(); + + var elasticsearchRemote = builder.AddExternalService("elasticsearch-remote", elasticsearchUrl); + + var api = builder.AddProject("api-lambda") + .WithArgs(globalArguments) + .WithEnvironment("ENVIRONMENT", "dev") + .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) + .WithEnvironment("LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH", llmServiceAccountPath) + .WithExplicitStart(); + + api = startElasticsearch + ? api + .WithReference(elasticsearchLocal) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) + .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) + .WithParentRelationship(elasticsearchLocal) + .WaitFor(elasticsearchLocal) + : api.WithReference(elasticsearchRemote) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchUrl) + .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey); + + var indexElasticsearch = builder.AddProject("elasticsearch-indexer-plain") + .WithArgs(["repo", "build-all", "--exporters", "elasticsearch", .. globalArguments]) + .WithExplicitStart() + .WaitForCompletion(cloneAll); + indexElasticsearch = startElasticsearch + ? indexElasticsearch + .WaitFor(elasticsearchLocal) + .WithReference(elasticsearchLocal) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) + .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) + .WithParentRelationship(elasticsearchLocal) + : indexElasticsearch + .WithReference(elasticsearchRemote) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchUrl) + .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey) + .WithParentRelationship(elasticsearchRemote); + + var indexElasticsearchSemantic = builder.AddProject("elasticsearch-indexer-semantic") + .WithArgs(["repo", "build-all", "--exporters", "semantic", .. globalArguments]) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) + .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) + .WithExplicitStart() + .WaitForCompletion(cloneAll); + indexElasticsearchSemantic = startElasticsearch + ? indexElasticsearchSemantic + .WaitFor(elasticsearchLocal) + .WithReference(elasticsearchLocal) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) + .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) + .WithParentRelationship(elasticsearchLocal) + : indexElasticsearchSemantic + .WithReference(elasticsearchRemote) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchUrl) + .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey) + .WithParentRelationship(elasticsearchRemote); + + var serveStatic = builder.AddProject("assembler-serve") + .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) + .WithEnvironment("LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH", llmServiceAccountPath) + .WithHttpEndpoint(port: 4000, isProxied: false) + .WithArgs(["serve-static", .. globalArguments]) + .WithHttpHealthCheck("/", 200) + .WaitForCompletion(buildAll) + .WithParentRelationship(cloneAll); + + serveStatic = startElasticsearch + ? serveStatic + .WithReference(elasticsearchLocal) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) + .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) + : serveStatic + .WithReference(elasticsearchRemote) + .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchUrl) + .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey); + + + serveStatic = startElasticsearch ? serveStatic.WaitFor(elasticsearchLocal) : serveStatic.WaitFor(buildAll); + + await builder.Build().RunAsync(ctx); +} diff --git a/tests-integration/aspire/Properties/launchSettings.json b/aspire/Properties/launchSettings.json similarity index 100% rename from tests-integration/aspire/Properties/launchSettings.json rename to aspire/Properties/launchSettings.json diff --git a/tests-integration/aspire/appsettings.Development.json b/aspire/appsettings.Development.json similarity index 100% rename from tests-integration/aspire/appsettings.Development.json rename to aspire/appsettings.Development.json diff --git a/tests-integration/aspire/appsettings.json b/aspire/appsettings.json similarity index 100% rename from tests-integration/aspire/appsettings.json rename to aspire/appsettings.json diff --git a/aspire/aspire.csproj b/aspire/aspire.csproj new file mode 100644 index 000000000..4b9f1ff9a --- /dev/null +++ b/aspire/aspire.csproj @@ -0,0 +1,31 @@ + + + + + + Exe + net9.0 + enable + enable + 72f50f33-6fb9-4d08-bff3-39568fe370b3 + false + Elastic.Documentation.Aspire + IDE0350 + + + + + + + + + + + + + + + + + + diff --git a/docs-builder.sln b/docs-builder.sln index 7fb8bba30..dd6035845 100644 --- a/docs-builder.sln +++ b/docs-builder.sln @@ -129,7 +129,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests-integration", "tests- EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elastic.Assembler.IntegrationTests", "tests-integration\Elastic.Assembler.IntegrationTests\Elastic.Assembler.IntegrationTests.csproj", "{A272D3EC-FAAF-4795-A796-302725382AFF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aspire", "tests-integration\aspire\aspire.csproj", "{4DFECE72-4A1F-4B58-918E-DCD07B585231}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aspire", "aspire\aspire.csproj", "{4DFECE72-4A1F-4B58-918E-DCD07B585231}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elastic.Documentation.ServiceDefaults", "src\Elastic.Documentation.ServiceDefaults\Elastic.Documentation.ServiceDefaults.csproj", "{2A83ED35-B631-4F02-8D4C-15611D0DB72C}" EndProject diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index a900b1975..585ca919c 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -23,7 +23,7 @@ public class DocumentationFixture : IAsyncLifetime /// public async ValueTask InitializeAsync() { - var builder = await DistributedApplicationTestingBuilder.CreateAsync( + var builder = await DistributedApplicationTestingBuilder.CreateAsync( ["--skip-private-repositories"], (options, settings) => { diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj b/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj index 04ef8cffa..fead12ee0 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj +++ b/tests-integration/Elastic.Assembler.IntegrationTests/Elastic.Assembler.IntegrationTests.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/tests-integration/aspire/AppHost.cs b/tests-integration/aspire/AppHost.cs deleted file mode 100644 index 079045b50..000000000 --- a/tests-integration/aspire/AppHost.cs +++ /dev/null @@ -1,81 +0,0 @@ -// Licensed to Elasticsearch B.V under one or more agreements. -// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. -// See the LICENSE file in the project root for more information - -using Aspire.Hosting; -using Elastic.Documentation; -using Microsoft.Extensions.Logging; - -var logLevel = LogLevel.Information; -GlobalCommandLine.Process(ref args, ref logLevel, out var skipPrivateRepositories); -var globalArguments = new List(); -if (skipPrivateRepositories) - globalArguments.Add("--skip-private-repositories"); - -if (logLevel != LogLevel.Information) -{ - globalArguments.Add("--log-level"); - globalArguments.Add(logLevel.ToString()); -} - -var builder = DistributedApplication.CreateBuilder(args); - -// Add a secret parameter named "secret" -var llmUrl = builder.AddParameter("LlmGatewayUrl", secret: true); -var llmServiceAccountPath = builder.AddParameter("LlmGatewayServiceAccountPath", secret: true); - -var cloneAll = builder.AddProject("DocsAssemblerCloneAll").WithArgs(["repo", "clone-all", .. globalArguments]); - -var buildAll = builder.AddProject("DocsAssemblerBuildAll").WithArgs(["repo", "build-all", .. globalArguments]) - .WaitForCompletion(cloneAll); - -var elasticsearch = builder.AddElasticsearch("elasticsearch") - .WithEnvironment("LICENSE", "trial"); - -var api = builder.AddProject("ApiLambda").WithArgs(globalArguments) - .WithEnvironment("ENVIRONMENT", "dev") - .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) - .WithEnvironment("LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH", llmServiceAccountPath) - .WaitFor(elasticsearch) - .WithReference(elasticsearch); - -var indexElasticsearch = builder.AddProject("DocsAssemblerElasticsearch") - .WithArgs(["repo", "build-all", "--exporters", "elasticsearch", .. globalArguments]) - .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearch.GetEndpoint("http")) - .WithEnvironment(context => - { - context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearch.Resource.PasswordParameter; - }) - .WithReference(elasticsearch) - .WithExplicitStart() - .WaitFor(elasticsearch) - .WaitForCompletion(cloneAll); - -var indexElasticsearchSemantic = builder.AddProject("DocsAssemblerElasticsearchSemantic") - .WithArgs(["repo", "build-all", "--exporters", "semantic", .. globalArguments]) - .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearch.GetEndpoint("http")) - .WithEnvironment(context => - { - context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearch.Resource.PasswordParameter; - }) - .WithReference(elasticsearch) - .WithExplicitStart() - .WaitFor(elasticsearch) - .WaitForCompletion(cloneAll); - -var serveStatic = builder.AddProject("DocsBuilderServeStatic") - .WithReference(elasticsearch) - .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) - .WithEnvironment("LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH", llmServiceAccountPath) - .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearch.GetEndpoint("http")) - .WithEnvironment(context => - { - context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearch.Resource.PasswordParameter; - }) - .WithHttpEndpoint(port: 4000, isProxied: false) - .WithArgs(["serve-static", .. globalArguments]) - .WithHttpHealthCheck("/", 200) - .WaitFor(elasticsearch) - .WaitForCompletion(buildAll); - -builder.Build().Run(); diff --git a/tests-integration/aspire/aspire.csproj b/tests-integration/aspire/aspire.csproj deleted file mode 100644 index 2a931c6d7..000000000 --- a/tests-integration/aspire/aspire.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - Exe - net9.0 - enable - enable - 72f50f33-6fb9-4d08-bff3-39568fe370b3 - false - Elastic.Documentation.Aspire - - - - - - - - - - - - - - - From 2b1e31186e47898ea6e0912f07be6ba7f52b4461 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Wed, 20 Aug 2025 19:52:56 +0200 Subject: [PATCH 03/13] Add README file for Aspire documentation setup and usage Includes setup instructions, local services management, Elasticsearch instance configuration, user secrets, and tokenless CI workflows. --- aspire/README.md | 88 +++++++++++++++++++++++++++++++++++++++ aspire/management-ui.png | Bin 0 -> 147587 bytes aspire/service-graph.png | Bin 0 -> 140104 bytes 3 files changed, 88 insertions(+) create mode 100644 aspire/README.md create mode 100644 aspire/management-ui.png create mode 100644 aspire/service-graph.png diff --git a/aspire/README.md b/aspire/README.md new file mode 100644 index 000000000..bd387b48a --- /dev/null +++ b/aspire/README.md @@ -0,0 +1,88 @@ +# Aspire for Elastic Documentation + +We use [Aspire](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview) for local development purposes to spin up all services in a controlled fashion. + +> Aspire provides tools, templates, and packages for building observable, production-ready distributed apps. At the center is the app model—a code-first, single source of truth that defines your app's services, resources, and connections. +>Aspire gives you a unified toolchain: launch and debug your entire app locally with one command, then deploy anywhere—Kubernetes, the cloud, or your own servers—using the same composition. + +We do not use Aspire to generate production deployment scripts since [this is not fully baked for AWS and terraform yet](https://github.com/dotnet/aspire/issues/6559) + +![service-graph.png](service-graph.png) + +## Run all services locally + +```bash +dotnet run --project aspire +``` + +Will automatically: + +* clone all repositories according to `config/assembler.yml` using `docs-assembler repo clone-all` +* do a full site build of all repositories using `docs-assembler repo build-all` +* Serve a copy of the fully assembled documentation using `docs-builder serve-static`. + +This should start a management UI over at: https://localhost:17166. This UI exposes all logs, traces, and metrics for each service + +![management-ui.png](management-ui.png) + +### Run without authorization tokens + +If you do not have access to clone to private repositories you can use `--skip-private-repositories` + +```bash +dotnet run --project aspire -- --skip-private-repositories +``` + +This will automagically scrub the private repositories from assembler.yml and navigation.yml. + +Our integration tests, for instance, use this to run tests on CI tokenless. + +## Elasticsearch Instance + +By default, we assume local [dotnet user secrets](#user-secrets) have been set to communicate to an external Elasticsearch instance. + +However, you can start a local Elasticsearch instance using + +```bash +dotnet run --project aspire -- --start-elasticsearch +``` + +This will run a local Elasticsearch docker image and expose that to Aspire service discovery instead. + +### Elasticsearch indexing + +Furthermore, it makes the following indexers available in the Aspire UI + +* Plain Elasticsearch, index elasticsearch documents. +* Semantic Elasticsearch, same but with semantic fields. + +These have to be run manually and can be run multiple times. + + +## User secrets + +We use dotnet user secrets to provide parameters to aspire. These are all optional but needed if you want +the AI prompts and external Elasticsearch searches to work. + +NOTE: using `--start-elasticsearch` the url and random password are automatically wired. + +```bash +dotnet user-secrets --project aspire list +``` + +Should have these secrets + +> Parameters:LlmGatewayUrl = https://**** +> Parameters:LlmGatewayServiceAccountPath = +> Parameters:DocumentationElasticUrl = https://*.elastic.cloud:443 +> Parameters:DocumentationElasticApiKey = **** + + +To set them: + +```bash +dotnet user-secrets --project aspire set Parameters:DocumentationElasticApiKey +``` + +Do note `dotnet user-secrets` should only be used on local development machines and not on CI. + diff --git a/aspire/management-ui.png b/aspire/management-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..46e16bc4f3b4d0dcae1d2f89a2ed96dec408c3c8 GIT binary patch literal 147587 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

##xnC_Qy%*X&o3&BpVx+ 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⪻2D_MNiXYk=J|pK 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 literal 0 HcmV?d00001 From 60c52460bbad9c1b8b14f90a97f89533c2660670 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 09:53:39 +0200 Subject: [PATCH 04/13] fix integration tests to account for new AppHost setup --- aspire/AppHost.cs | 26 +++++++++---------- aspire/README.md | 13 ++++++++-- aspire/ResourceNames.cs | 17 ++++++++++++ aspire/aspire.csproj | 10 +++---- .../GlobalCommandLine.cs | 3 --- .../docs-assembler/Cli/RepositoryCommands.cs | 4 ++- .../Sourcing/RepositorySourcesFetcher.cs | 19 +++++++++++--- .../AssembleFixture.cs | 16 ++++++------ 8 files changed, 73 insertions(+), 35 deletions(-) create mode 100644 aspire/ResourceNames.cs diff --git a/aspire/AppHost.cs b/aspire/AppHost.cs index 295624b69..e99f405dd 100644 --- a/aspire/AppHost.cs +++ b/aspire/AppHost.cs @@ -7,6 +7,7 @@ using Elastic.Documentation; using Elastic.Documentation.Configuration; using Microsoft.Extensions.Logging; +using static Elastic.Documentation.Aspire.ResourceNames; // ReSharper disable UnusedVariable // ReSharper disable RedundantAssignment @@ -28,9 +29,10 @@ return; // ReSharper disable once RedundantLambdaParameterType -async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipPrivateRepositories, Cancel ctx) +async Task BuildAspireHost(bool startElasticsearch, bool assumeCloned, bool skipPrivateRepositories, Cancel ctx) { var builder = DistributedApplication.CreateBuilder(args); + skipPrivateRepositories = globalArguments.Contains("--skip-private-repositories"); var llmUrl = builder.AddParameter("LlmGatewayUrl", secret: true); var llmServiceAccountPath = builder.AddParameter("LlmGatewayServiceAccountPath", secret: true); @@ -38,25 +40,23 @@ async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipP var elasticsearchUrl = builder.AddParameter("DocumentationElasticUrl", secret: true); var elasticsearchApiKey = builder.AddParameter("DocumentationElasticApiKey", secret: true); - var cloneAll = builder.AddProject("assembler-clone"); - var cloneDirectory = Path.Combine(Paths.GetSolutionDirectory()!.FullName, ".artifacts", "checkouts", "current"); - cloneAll = cloneAlways || !Directory.Exists(cloneDirectory) - ? cloneAll.WithArgs(["repo", "clone-all", .. globalArguments]) - : cloneAll.WithArgs(["repo", "clone-all", "--help"]); + var cloneAll = builder.AddProject(AssemblerClone); + string[] cloneArgs = assumeCloned ? ["--assume-cloned"] : []; + cloneAll = cloneAll.WithArgs(["repo", "clone-all", .. globalArguments, .. cloneArgs]); - var buildAll = builder.AddProject("assembler-build") + var buildAll = builder.AddProject(AssemblerBuild) .WithArgs(["repo", "build-all", .. globalArguments]) .WaitForCompletion(cloneAll) .WithParentRelationship(cloneAll); - var elasticsearchLocal = builder.AddElasticsearch("elasticsearch-local") + var elasticsearchLocal = builder.AddElasticsearch(ElasticsearchLocal) .WithEnvironment("LICENSE", "trial"); if (!startElasticsearch) elasticsearchLocal = elasticsearchLocal.WithExplicitStart(); - var elasticsearchRemote = builder.AddExternalService("elasticsearch-remote", elasticsearchUrl); + var elasticsearchRemote = builder.AddExternalService(ElasticsearchRemote, elasticsearchUrl); - var api = builder.AddProject("api-lambda") + var api = builder.AddProject(LambdaApi) .WithArgs(globalArguments) .WithEnvironment("ENVIRONMENT", "dev") .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) @@ -74,7 +74,7 @@ async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipP .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchUrl) .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey); - var indexElasticsearch = builder.AddProject("elasticsearch-indexer-plain") + var indexElasticsearch = builder.AddProject(ElasticsearchIndexerPlain) .WithArgs(["repo", "build-all", "--exporters", "elasticsearch", .. globalArguments]) .WithExplicitStart() .WaitForCompletion(cloneAll); @@ -91,7 +91,7 @@ async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipP .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey) .WithParentRelationship(elasticsearchRemote); - var indexElasticsearchSemantic = builder.AddProject("elasticsearch-indexer-semantic") + var indexElasticsearchSemantic = builder.AddProject(ElasticsearchIndexerSemantic) .WithArgs(["repo", "build-all", "--exporters", "semantic", .. globalArguments]) .WithEnvironment("DOCUMENTATION_ELASTIC_URL", elasticsearchLocal.GetEndpoint("http")) .WithEnvironment(context => context.EnvironmentVariables["DOCUMENTATION_ELASTIC_PASSWORD"] = elasticsearchLocal.Resource.PasswordParameter) @@ -110,7 +110,7 @@ async Task BuildAspireHost(bool startElasticsearch, bool cloneAlways, bool skipP .WithEnvironment("DOCUMENTATION_ELASTIC_APIKEY", elasticsearchApiKey) .WithParentRelationship(elasticsearchRemote); - var serveStatic = builder.AddProject("assembler-serve") + var serveStatic = builder.AddProject(AssemblerServe) .WithEnvironment("LLM_GATEWAY_FUNCTION_URL", llmUrl) .WithEnvironment("LLM_GATEWAY_SERVICE_ACCOUNT_KEY_PATH", llmServiceAccountPath) .WithHttpEndpoint(port: 4000, isProxied: false) diff --git a/aspire/README.md b/aspire/README.md index bd387b48a..86e465f3e 100644 --- a/aspire/README.md +++ b/aspire/README.md @@ -11,11 +11,21 @@ We do not use Aspire to generate production deployment scripts since [this is no ## Run all services locally +You may need to install the Aspire workload first. We also recommend installing the aspire plugin + +* [For Rider](https://plugins.jetbrains.com/plugin/23289--net-aspire) + +```bash +sudo dotnet workload install aspire +``` + +Aspire is just another CLI program so can be run like all the other tools + ```bash dotnet run --project aspire ``` -Will automatically: +This will automatically: * clone all repositories according to `config/assembler.yml` using `docs-assembler repo clone-all` * do a full site build of all repositories using `docs-assembler repo build-all` @@ -58,7 +68,6 @@ Furthermore, it makes the following indexers available in the Aspire UI These have to be run manually and can be run multiple times. - ## User secrets We use dotnet user secrets to provide parameters to aspire. These are all optional but needed if you want diff --git a/aspire/ResourceNames.cs b/aspire/ResourceNames.cs new file mode 100644 index 000000000..942899b80 --- /dev/null +++ b/aspire/ResourceNames.cs @@ -0,0 +1,17 @@ +// Licensed to Elasticsearch B.V under one or more agreements. +// Elasticsearch B.V licenses this file to you under the Apache 2.0 License. +// See the LICENSE file in the project root for more information + +namespace Elastic.Documentation.Aspire; + +public static class ResourceNames +{ + public const string AssemblerClone = "assembler-clone"; + public const string AssemblerBuild = "assembler-build"; + public const string AssemblerServe = "assembler-serve"; + public const string ElasticsearchLocal = "elasticsearch-local"; + public const string ElasticsearchRemote = "elasticsearch-remote"; + public const string LambdaApi = "lambda-api"; + public const string ElasticsearchIndexerPlain = "elasticsearch-indexer-plain"; + public const string ElasticsearchIndexerSemantic = "elasticsearch-indexer-semantic"; +} diff --git a/aspire/aspire.csproj b/aspire/aspire.csproj index 4b9f1ff9a..07d40fb5e 100644 --- a/aspire/aspire.csproj +++ b/aspire/aspire.csproj @@ -20,12 +20,12 @@ - - - + + + - - + + diff --git a/src/Elastic.Documentation/GlobalCommandLine.cs b/src/Elastic.Documentation/GlobalCommandLine.cs index 9ebedb554..820eaa051 100644 --- a/src/Elastic.Documentation/GlobalCommandLine.cs +++ b/src/Elastic.Documentation/GlobalCommandLine.cs @@ -21,10 +21,7 @@ public static void Process(ref string[] args, ref LogLevel defaultLogLevel, out i++; } else if (args[i] == "--skip-private-repositories") - { skipPrivateRepositories = true; - i++; - } else newArgs.Add(args[i]); } diff --git a/src/tooling/docs-assembler/Cli/RepositoryCommands.cs b/src/tooling/docs-assembler/Cli/RepositoryCommands.cs index 02781ec6e..01f53200c 100644 --- a/src/tooling/docs-assembler/Cli/RepositoryCommands.cs +++ b/src/tooling/docs-assembler/Cli/RepositoryCommands.cs @@ -78,12 +78,14 @@ public async Task CloneConfigurationFolder(string? gitRef = null, Cancel ct /// Treat warnings as errors and fail the build on warnings /// The environment to build /// If true, fetch the latest commit of the branch instead of the link registry entry ref + /// If true, assume the repository folder already exists on disk assume it's cloned already, primarily used for testing /// [Command("clone-all")] public async Task CloneAll( bool? strict = null, string? environment = null, bool? fetchLatest = null, + bool? assumeCloned = null, Cancel ctx = default ) { @@ -97,7 +99,7 @@ public async Task CloneAll( var assembleContext = new AssembleContext(assemblyConfiguration, configurationContext, environment, collector, fs, fs, null, null); var cloner = new AssemblerRepositorySourcer(logFactory, assembleContext); - _ = await cloner.CloneAll(fetchLatest ?? false, ctx); + _ = await cloner.CloneAll(fetchLatest ?? false, assumeCloned ?? false, ctx); await collector.StopAsync(ctx); diff --git a/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs b/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs index 94f4afb7b..8d207f978 100644 --- a/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs +++ b/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs @@ -57,7 +57,7 @@ public CheckoutResult GetAll() }; } - public async Task CloneAll(bool fetchLatest, Cancel ctx = default) + public async Task CloneAll(bool fetchLatest, bool assumeCloned, Cancel ctx = default) { _logger.LogInformation("Cloning all repositories for environment {EnvironmentName} using '{ContentSourceStrategy}' content sourcing strategy", PublishEnvironment.Name, @@ -93,7 +93,9 @@ await Task.Run(() => } gitRef = entryInfo.GitReference; } - checkouts.Add(RepositorySourcer.CloneRef(repo.Value, gitRef, fetchLatest)); + + var cloneInformation = RepositorySourcer.CloneRef(repo.Value, gitRef, fetchLatest, assumeCloned: assumeCloned); + checkouts.Add(cloneInformation); }, c); }).ConfigureAwait(false); await context.WriteFileSystem.File.WriteAllTextAsync( @@ -125,13 +127,24 @@ public class RepositorySourcer(ILoggerFactory logFactory, IDirectoryInfo checkou // // The repository to clone. // The git reference to check out. Branch, commit or tag - public Checkout CloneRef(Repository repository, string gitRef, bool pull = false, int attempt = 1, bool appendRepositoryName = true) + public Checkout CloneRef(Repository repository, string gitRef, bool pull = false, int attempt = 1, bool appendRepositoryName = true, bool assumeCloned = false) { var checkoutFolder = appendRepositoryName ? readFileSystem.DirectoryInfo.New(Path.Combine(checkoutDirectory.FullName, repository.Name)) : checkoutDirectory; IGitRepository git = new SingleCommitOptimizedGitRepository(collector, checkoutFolder); + if (assumeCloned && checkoutFolder.Exists) + { + _logger.LogInformation("{RepositoryName}: Assuming {RepositoryName}@{Commit} is already checked out to {CheckoutFolder}", repository.Name, repository.Name, gitRef, checkoutFolder.FullName); + return new Checkout + { + Directory = checkoutFolder, + HeadReference = git.GetCurrentCommit(), + Repository = repository, + }; + } + if (attempt > 3) { collector.EmitError("", $"Failed to clone repository {repository.Name}@{gitRef} after 3 attempts"); diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index 585ca919c..023f0c878 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -9,6 +9,7 @@ using InMemLogger; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using static Elastic.Documentation.Aspire.ResourceNames; [assembly: CaptureConsole, AssemblyFixture(typeof(Elastic.Assembler.IntegrationTests.DocumentationFixture))] @@ -24,22 +25,23 @@ public class DocumentationFixture : IAsyncLifetime public async ValueTask InitializeAsync() { var builder = await DistributedApplicationTestingBuilder.CreateAsync( - ["--skip-private-repositories"], + ["--skip-private-repositories", "--assume-cloned"], (options, settings) => { options.DisableDashboard = true; options.AllowUnsecuredTransport = true; + options.EnableResourceLogging = true; } ); _ = builder.Services.AddElasticDocumentationLogging(LogLevel.Information); _ = builder.Services.AddLogging(c => c.AddXUnit()); _ = builder.Services.AddLogging(c => c.AddInMemory()); - // TODO expose this as secrets for now not needed integration tests - _ = builder.AddParameter("LlmGatewayUrl", ""); - _ = builder.AddParameter("LlmGatewayServiceAccountPath", ""); DistributedApplication = await builder.BuildAsync(); InMemoryLogger = DistributedApplication.Services.GetService()!; - await DistributedApplication.StartAsync(); + _ = DistributedApplication.StartAsync().WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); + _ = await DistributedApplication.ResourceNotifications + .WaitForResourceHealthyAsync(AssemblerServe, cancellationToken: TestContext.Current.CancellationToken) + .WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); } /// @@ -56,9 +58,7 @@ public class ServeStaticTests(DocumentationFixture fixture, ITestOutputHelper ou [Fact] public async Task AssertRequestToRootReturnsData() { - _ = await fixture.DistributedApplication.ResourceNotifications - .WaitForResourceHealthyAsync("DocsBuilderServeStatic", cancellationToken: TestContext.Current.CancellationToken); - var client = fixture.DistributedApplication.CreateHttpClient("DocsBuilderServeStatic", "http"); + var client = fixture.DistributedApplication.CreateHttpClient(AssemblerServe, "http"); var root = await client.GetStringAsync("/", TestContext.Current.CancellationToken); _ = root.Should().NotBeNullOrEmpty(); } From abb4920e60255d223cfc9fc9c9dd80474ed405ac Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:05:09 +0200 Subject: [PATCH 05/13] Add ability to set path for repositories in assembler.yml Only works locally. If you specify `--skip-private-repositories` locally and we detect a solution file we automatically inject docs-builder in to the assembler navigation. This allows our integration tests to tests new features in the assembler. --- .../Assembler/AssemblyConfiguration.cs | 64 ++++++++++++++++--- .../Assembler/Repository.cs | 4 ++ .../ConfigurationFileProvider.cs | 20 +++++- .../GlobalCommandLine.cs | 2 + .../ExternalCommandExecutor.cs | 3 +- src/tooling/docs-assembler/AssembleSources.cs | 2 +- .../Navigation/GlobalNavigationFile.cs | 6 +- .../Sourcing/RepositorySourcesFetcher.cs | 39 +++++++---- .../AssembleFixture.cs | 32 +++++++++- 9 files changed, 143 insertions(+), 29 deletions(-) diff --git a/src/Elastic.Documentation.Configuration/Assembler/AssemblyConfiguration.cs b/src/Elastic.Documentation.Configuration/Assembler/AssemblyConfiguration.cs index c04138cb2..655f6baf5 100644 --- a/src/Elastic.Documentation.Configuration/Assembler/AssemblyConfiguration.cs +++ b/src/Elastic.Documentation.Configuration/Assembler/AssemblyConfiguration.cs @@ -30,6 +30,23 @@ public static AssemblyConfiguration Deserialize(string yaml, bool skipPrivateRep var repository = RepositoryDefaults(r, name); config.ReferenceRepositories[name] = repository; } + + // if we are not running in CI, and we are skipping private repositories, and we can locate the solution directory. build the local docs-content repository + if (string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI")) + && skipPrivateRepositories + && config.ReferenceRepositories.TryGetValue("docs-builder", out var docsContentRepository) + && Paths.GetSolutionDirectory() is { } solutionDir + ) + { + var docsRepositoryPath = Path.Combine(solutionDir.FullName, "docs"); + config.ReferenceRepositories["docs-builder"] = docsContentRepository with + { + Skip = false, + Path = docsRepositoryPath + }; + } + + var privateRepositories = config.ReferenceRepositories.Where(r => r.Value.Private).ToList(); foreach (var (name, _) in privateRepositories) { @@ -45,7 +62,9 @@ public static AssemblyConfiguration Deserialize(string yaml, bool skipPrivateRep .Where(r => !r.Skip) .Concat([config.Narrative]).ToDictionary(kvp => kvp.Name, kvp => kvp); - config.PrivateRepositories = privateRepositories.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + config.PrivateRepositories = privateRepositories + .Where(r => !r.Value.Skip) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); return config; } catch (Exception e) @@ -69,6 +88,12 @@ private static TRepository RepositoryDefaults(TRepository r, string GitReferenceNext = string.IsNullOrEmpty(repository.GitReferenceNext) ? "main" : repository.GitReferenceNext, GitReferenceEdge = string.IsNullOrEmpty(repository.GitReferenceEdge) ? "main" : repository.GitReferenceEdge, }; + // ensure we always null path if we are running in CI + if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI"))) + repository = repository with + { + Path = null + }; if (string.IsNullOrEmpty(repository.Origin)) { if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("GITHUB_ACTIONS"))) @@ -124,21 +149,34 @@ public ContentSourceMatch Match(string repository, string branchOrTag) var next = r.GetBranch(ContentSource.Next); var isVersionBranch = ContentSourceRegex.MatchVersionBranch().IsMatch(branchOrTag); if (current == branchOrTag) - match = match with { Current = ContentSource.Current }; + match = match with + { + Current = ContentSource.Current + }; if (next == branchOrTag) - match = match with { Next = ContentSource.Next }; + match = match with + { + Next = ContentSource.Next + }; if (isVersionBranch && SemVersion.TryParse(branchOrTag + ".0", out var v)) { // if the current branch is a version, only speculatively match if branch is actually a new version if (SemVersion.TryParse(current + ".0", out var currentVersion)) { if (v >= currentVersion) - match = match with { Speculative = true }; + match = match with + { + Speculative = true + }; } // assume we are newly onboarding the repository to current/next else - match = match with { Speculative = true }; + match = match with + { + Speculative = true + }; } + return match; } @@ -147,19 +185,27 @@ public ContentSourceMatch Match(string repository, string branchOrTag) // this is an unknown new elastic repository var isVersionBranch = ContentSourceRegex.MatchVersionBranch().IsMatch(branchOrTag); if (isVersionBranch || branchOrTag == "main" || branchOrTag == "master") - return match with { Speculative = true }; + return match with + { + Speculative = true + }; } if (Narrative.GetBranch(ContentSource.Current) == branchOrTag) - match = match with { Current = ContentSource.Current }; + match = match with + { + Current = ContentSource.Current + }; if (Narrative.GetBranch(ContentSource.Next) == branchOrTag) - match = match with { Next = ContentSource.Next }; + match = match with + { + Next = ContentSource.Next + }; return match; } public record ContentSourceMatch(ContentSource? Current, ContentSource? Next, bool Speculative); - } internal static partial class ContentSourceRegex diff --git a/src/Elastic.Documentation.Configuration/Assembler/Repository.cs b/src/Elastic.Documentation.Configuration/Assembler/Repository.cs index 389fc257d..7b8d39440 100644 --- a/src/Elastic.Documentation.Configuration/Assembler/Repository.cs +++ b/src/Elastic.Documentation.Configuration/Assembler/Repository.cs @@ -36,6 +36,10 @@ public record Repository [YamlMember(Alias = "skip")] public bool Skip { get; set; } + ///

Allows you to override the path to the repository, but only during local builds. + [YamlMember(Alias = "path")] + public string? Path { get; set; } + [YamlMember(Alias = "current")] public string GitReferenceCurrent { get; set; } = "main"; diff --git a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs index 045e6832f..a8cac2085 100644 --- a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs +++ b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs @@ -55,8 +55,9 @@ public ConfigurationFileProvider(IFileSystem fileSystem, bool skipPrivateReposit public IFileInfo LegacyUrlMappingsFile { get; } - public IFileInfo CreateNavigationFile(IReadOnlyDictionary privateRepositories) + public IFileInfo CreateNavigationFile(AssemblyConfiguration configuration) { + var privateRepositories = configuration.PrivateRepositories; if (privateRepositories.Count == 0 || !SkipPrivateRepositories) return NavigationFile; @@ -104,6 +105,23 @@ public IFileInfo CreateNavigationFile(IReadOnlyDictionary pr if (spacing == -1 || reindenting > 0) _fileSystem.File.AppendAllLines(tempFile, [line]); } + + if (configuration.AvailableRepositories.TryGetValue("docs-builder", out var docsBuildRepository) && docsBuildRepository is { Skip: false, Path: not null }) + { + // language=yaml + _fileSystem.File.AppendAllText(tempFile, + """ + - toc: docs-builder:// + path_prefix: reference/docs-builder + children: + - toc: docs-builder://development + path_prefix: reference/docs-builder/dev + children: + - toc: docs-builder://development/link-validation + path_prefix: reference/docs-builder/dev/link-val + + """); + } NavigationFile = _fileSystem.FileInfo.New(tempFile); return NavigationFile; diff --git a/src/Elastic.Documentation/GlobalCommandLine.cs b/src/Elastic.Documentation/GlobalCommandLine.cs index 820eaa051..6de8a22a6 100644 --- a/src/Elastic.Documentation/GlobalCommandLine.cs +++ b/src/Elastic.Documentation/GlobalCommandLine.cs @@ -22,6 +22,8 @@ public static void Process(ref string[] args, ref LogLevel defaultLogLevel, out } else if (args[i] == "--skip-private-repositories") skipPrivateRepositories = true; + else if (args[i] == "--inject") + skipPrivateRepositories = true; else newArgs.Add(args[i]); } diff --git a/src/tooling/Elastic.Documentation.Tooling/ExternalCommands/ExternalCommandExecutor.cs b/src/tooling/Elastic.Documentation.Tooling/ExternalCommands/ExternalCommandExecutor.cs index fe4dadfed..3d007f4d2 100644 --- a/src/tooling/Elastic.Documentation.Tooling/ExternalCommands/ExternalCommandExecutor.cs +++ b/src/tooling/Elastic.Documentation.Tooling/ExternalCommands/ExternalCommandExecutor.cs @@ -112,7 +112,8 @@ string CaptureOutput() WorkingDirectory = workingDirectory.FullName, Timeout = TimeSpan.FromSeconds(3), WaitForExit = TimeSpan.FromSeconds(3), - ConsoleOutWriter = NoopConsoleWriter.Instance + ConsoleOutWriter = NoopConsoleWriter.Instance, + OnlyPrintBinaryInExceptionMessage = false }; var result = Proc.Start(arguments); var line = (result.ExitCode, muteExceptions) switch diff --git a/src/tooling/docs-assembler/AssembleSources.cs b/src/tooling/docs-assembler/AssembleSources.cs index 01ba8846b..1bd8c1aa6 100644 --- a/src/tooling/docs-assembler/AssembleSources.cs +++ b/src/tooling/docs-assembler/AssembleSources.cs @@ -171,7 +171,7 @@ static void ReadHistoryMappings(IDictionary> public static FrozenDictionary GetTocMappings(AssembleContext context) { var dictionary = new Dictionary(); - var file = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration.PrivateRepositories); + var file = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration); var reader = new YamlStreamReader(file, context.Collector); var entries = new List>(); foreach (var entry in reader.Read()) diff --git a/src/tooling/docs-assembler/Navigation/GlobalNavigationFile.cs b/src/tooling/docs-assembler/Navigation/GlobalNavigationFile.cs index 66c55bf0e..75f09a8ba 100644 --- a/src/tooling/docs-assembler/Navigation/GlobalNavigationFile.cs +++ b/src/tooling/docs-assembler/Navigation/GlobalNavigationFile.cs @@ -28,7 +28,7 @@ public GlobalNavigationFile(AssembleContext context, AssembleSources assembleSou { _context = context; _assembleSources = assembleSources; - NavigationFile = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration.PrivateRepositories); + NavigationFile = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration); TableOfContents = Deserialize("toc"); Phantoms = Deserialize("phantoms"); ScopeDirectory = NavigationFile.Directory!; @@ -63,7 +63,7 @@ public static ImmutableHashSet GetPhantomPrefixes(AssembleContext context) private static ImmutableHashSet GetSourceUris(string key, AssembleContext context) { - var navigationFile = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration.PrivateRepositories); + var navigationFile = context.ConfigurationFileProvider.CreateNavigationFile(context.Configuration); var reader = new YamlStreamReader(navigationFile, context.Collector); var set = new HashSet(); foreach (var entry in reader.Read()) @@ -153,7 +153,7 @@ public void EmitError(string message) => private IReadOnlyCollection Deserialize(string key) { - var navigationFile = _context.ConfigurationFileProvider.CreateNavigationFile(_context.Configuration.PrivateRepositories); + var navigationFile = _context.ConfigurationFileProvider.CreateNavigationFile(_context.Configuration); var reader = new YamlStreamReader(navigationFile, _context.Collector); try { diff --git a/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs b/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs index 8d207f978..4f943b430 100644 --- a/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs +++ b/src/tooling/docs-assembler/Sourcing/RepositorySourcesFetcher.cs @@ -35,6 +35,12 @@ public CheckoutResult GetAll() foreach (var repo in repositories.Values) { var checkoutFolder = fs.DirectoryInfo.New(Path.Combine(context.CheckoutDirectory.FullName, repo.Name)); + // if we are running locally, allow for repository path override + if (string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI")) && !string.IsNullOrWhiteSpace(repo.Path)) + { + _logger.LogInformation("{RepositoryName}: Using local override path for {RepositoryName} at {Path}", repo.Name, repo.Name, repo.Path); + checkoutFolder = fs.DirectoryInfo.New(repo.Path); + } IGitRepository gitFacade = new SingleCommitOptimizedGitRepository(context.Collector, checkoutFolder); if (!checkoutFolder.Exists) { @@ -130,30 +136,37 @@ public class RepositorySourcer(ILoggerFactory logFactory, IDirectoryInfo checkou public Checkout CloneRef(Repository repository, string gitRef, bool pull = false, int attempt = 1, bool appendRepositoryName = true, bool assumeCloned = false) { var checkoutFolder = - appendRepositoryName + appendRepositoryName ? readFileSystem.DirectoryInfo.New(Path.Combine(checkoutDirectory.FullName, repository.Name)) : checkoutDirectory; + + // if we are running locally, allow for repository path override + if (!string.IsNullOrWhiteSpace(repository.Path)) + { + var di = readFileSystem.DirectoryInfo.New(repository.Path); + if (!di.Exists) + { + _logger.LogInformation("{RepositoryName}: Can not find {RepositoryName}@{Commit} at local override path {CheckoutFolder}", repository.Name, repository.Name, gitRef, di.FullName); + collector.EmitError("", $"Can not find {repository.Name}@{gitRef} at local override path {di.FullName}"); + return new Checkout { Directory = di, HeadReference = "", Repository = repository }; + } + checkoutFolder = di; + assumeCloned = true; + _logger.LogInformation("{RepositoryName}: Using override path for {RepositoryName}@{Commit} at {CheckoutFolder}", repository.Name, repository.Name, gitRef, checkoutFolder.FullName); + } + IGitRepository git = new SingleCommitOptimizedGitRepository(collector, checkoutFolder); + if (assumeCloned && checkoutFolder.Exists) { _logger.LogInformation("{RepositoryName}: Assuming {RepositoryName}@{Commit} is already checked out to {CheckoutFolder}", repository.Name, repository.Name, gitRef, checkoutFolder.FullName); - return new Checkout - { - Directory = checkoutFolder, - HeadReference = git.GetCurrentCommit(), - Repository = repository, - }; + return new Checkout { Directory = checkoutFolder, HeadReference = git.GetCurrentCommit(), Repository = repository }; } if (attempt > 3) { collector.EmitError("", $"Failed to clone repository {repository.Name}@{gitRef} after 3 attempts"); - return new Checkout - { - Directory = checkoutFolder, - HeadReference = "", - Repository = repository, - }; + return new Checkout { Directory = checkoutFolder, HeadReference = "", Repository = repository }; } _logger.LogInformation("{RepositoryName}: Cloning repository {RepositoryName}@{Commit} to {CheckoutFolder}", repository.Name, repository.Name, gitRef, checkoutFolder.FullName); diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index 023f0c878..c9d8031fe 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -3,10 +3,12 @@ // See the LICENSE file in the project root for more information using Aspire.Hosting; +using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Testing; using Elastic.Documentation.ServiceDefaults; using FluentAssertions; using InMemLogger; +using Microsoft.AspNetCore.Mvc.TagHelpers.Cache; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using static Elastic.Documentation.Aspire.ResourceNames; @@ -17,6 +19,7 @@ namespace Elastic.Assembler.IntegrationTests; public class DocumentationFixture : IAsyncLifetime { + private bool _failedBootstrap; public DistributedApplication DistributedApplication { get; private set; } = null!; public InMemoryLogger InMemoryLogger { get; private set; } = null!; @@ -39,9 +42,36 @@ public async ValueTask InitializeAsync() DistributedApplication = await builder.BuildAsync(); InMemoryLogger = DistributedApplication.Services.GetService()!; _ = DistributedApplication.StartAsync().WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); + _ = await DistributedApplication.ResourceNotifications - .WaitForResourceHealthyAsync(AssemblerServe, cancellationToken: TestContext.Current.CancellationToken) + .WaitForResourceAsync(AssemblerClone, KnownResourceStates.TerminalStates, cancellationToken: TestContext.Current.CancellationToken) .WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); + + await ValidateExitCode(AssemblerClone); + + _ = await DistributedApplication.ResourceNotifications + .WaitForResourceAsync(AssemblerBuild, KnownResourceStates.TerminalStates, cancellationToken: TestContext.Current.CancellationToken) + .WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); + + await ValidateExitCode(AssemblerBuild); + + _ = await DistributedApplication.ResourceNotifications + .WaitForResourceHealthyAsync(AssemblerServe, cancellationToken: TestContext.Current.CancellationToken) + .WaitAsync(TimeSpan.FromMinutes(1), TestContext.Current.CancellationToken); + } + + private async ValueTask ValidateExitCode(string resourceName) + { + var eventResource = await DistributedApplication.ResourceNotifications.WaitForResourceAsync(resourceName, _ => true); + var id = eventResource.ResourceId; + if (!DistributedApplication.ResourceNotifications.TryGetCurrentState(id, out var e)) + throw new Exception($"Could not find {resourceName} in the current state"); + if (e.Snapshot.ExitCode is not 0) + { + await DistributedApplication.StopAsync(); + await DistributedApplication.DisposeAsync(); + throw new Exception($"Exit code should be 0 for {resourceName}: {string.Join(Environment.NewLine, InMemoryLogger.RecordedLogs.Reverse().Take(30).Reverse())}"); + } } /// From 287770d717eab31853cbf8cb401a7d2ce3759f52 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:05:42 +0200 Subject: [PATCH 06/13] Re-enable integration tests in CI workflow --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76cf56c8c..610166de6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,7 +98,6 @@ jobs: integration: runs-on: docs-builder-latest-16 - if: false steps: - uses: actions/checkout@v4 From 54c86f65add36a81088c6092c6705ed433917067 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:08:58 +0200 Subject: [PATCH 07/13] Expand README with local `--skip-private-repositories` behavior and remove unused import in integration tests --- aspire/README.md | 3 +-- .../Elastic.Assembler.IntegrationTests/AssembleFixture.cs | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/aspire/README.md b/aspire/README.md index 86e465f3e..b6fb4b92a 100644 --- a/aspire/README.md +++ b/aspire/README.md @@ -45,7 +45,7 @@ dotnet run --project aspire -- --skip-private-repositories This will automagically scrub the private repositories from assembler.yml and navigation.yml. -Our integration tests, for instance, use this to run tests on CI tokenless. +Our integration tests, for instance, use this to run tests on CI tokenless. When specifying this option locally we automatically inject `docs-builder`'s own docs into the `navigation.yml`. This allows us to test changes to documentation sets and their effect on assembler during PR's ## Elasticsearch Instance @@ -86,7 +86,6 @@ Should have these secrets > Parameters:DocumentationElasticUrl = https://*.elastic.cloud:443 > Parameters:DocumentationElasticApiKey = **** - To set them: ```bash diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index c9d8031fe..682ac4f61 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -8,7 +8,6 @@ using Elastic.Documentation.ServiceDefaults; using FluentAssertions; using InMemLogger; -using Microsoft.AspNetCore.Mvc.TagHelpers.Cache; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using static Elastic.Documentation.Aspire.ResourceNames; From e37dbfd50b04ffdcaff6481bc98f47008bfeb034 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:15:45 +0200 Subject: [PATCH 08/13] format --- .../Elastic.Assembler.IntegrationTests/AssembleFixture.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index 682ac4f61..cc3ae3430 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -18,7 +18,6 @@ namespace Elastic.Assembler.IntegrationTests; public class DocumentationFixture : IAsyncLifetime { - private bool _failedBootstrap; public DistributedApplication DistributedApplication { get; private set; } = null!; public InMemoryLogger InMemoryLogger { get; private set; } = null!; @@ -69,7 +68,8 @@ private async ValueTask ValidateExitCode(string resourceName) { await DistributedApplication.StopAsync(); await DistributedApplication.DisposeAsync(); - throw new Exception($"Exit code should be 0 for {resourceName}: {string.Join(Environment.NewLine, InMemoryLogger.RecordedLogs.Reverse().Take(30).Reverse())}"); + throw new Exception( + $"Exit code should be 0 for {resourceName}: {string.Join(Environment.NewLine, InMemoryLogger.RecordedLogs.Reverse().Take(30).Reverse())}"); } } From c775aaa0933036fc30dc6e31fb921c68debf4787 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:23:32 +0200 Subject: [PATCH 09/13] add more details if serve-static does not become healthy --- .../AssembleFixture.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index cc3ae3430..ac1def849 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -53,9 +53,18 @@ public async ValueTask InitializeAsync() await ValidateExitCode(AssemblerBuild); - _ = await DistributedApplication.ResourceNotifications - .WaitForResourceHealthyAsync(AssemblerServe, cancellationToken: TestContext.Current.CancellationToken) - .WaitAsync(TimeSpan.FromMinutes(1), TestContext.Current.CancellationToken); + try + { + _ = await DistributedApplication.ResourceNotifications + .WaitForResourceHealthyAsync(AssemblerServe, cancellationToken: TestContext.Current.CancellationToken) + .WaitAsync(TimeSpan.FromMinutes(1), TestContext.Current.CancellationToken); + } + catch (Exception e) + { + await DistributedApplication.StopAsync(); + await DistributedApplication.DisposeAsync(); + throw new Exception($"{e.Message}: {string.Join(Environment.NewLine, InMemoryLogger.RecordedLogs.Reverse().Take(30).Reverse())}", e); + } } private async ValueTask ValidateExitCode(string resourceName) From 31bb1476e677a9d0a8b76af9bcecb39311abd3fd Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:31:04 +0200 Subject: [PATCH 10/13] Add Parameters:: on CI as empty strings --- .../AssembleFixture.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index ac1def849..4a7269c96 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -2,6 +2,7 @@ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information +using System.Configuration; using Aspire.Hosting; using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Testing; @@ -11,6 +12,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using static Elastic.Documentation.Aspire.ResourceNames; +using ConfigurationManager = Microsoft.Extensions.Configuration.ConfigurationManager; [assembly: CaptureConsole, AssemblyFixture(typeof(Elastic.Assembler.IntegrationTests.DocumentationFixture))] @@ -32,6 +34,15 @@ public async ValueTask InitializeAsync() options.DisableDashboard = true; options.AllowUnsecuredTransport = true; options.EnableResourceLogging = true; + if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CI"))) + { + var config = new ConfigurationManager(); + config["Parameters:DocumentationElasticUrl"] = string.Empty; + config["Parameters:DocumentationElasticApiKey"] = string.Empty; + config["Parameters:LlmGatewayUrl"] = string.Empty; + config["Parameters:LlmGatewayServiceAccountPath"] = string.Empty; + settings.Configuration = config; + } } ); _ = builder.Services.AddElasticDocumentationLogging(LogLevel.Information); From 3822542ad3d42dcc974551606607da05a36b6d9f Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 12:53:45 +0200 Subject: [PATCH 11/13] Override parameters on CI --- .../AssembleFixture.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index 4a7269c96..414ccd1ad 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -48,6 +48,15 @@ public async ValueTask InitializeAsync() _ = builder.Services.AddElasticDocumentationLogging(LogLevel.Information); _ = builder.Services.AddLogging(c => c.AddXUnit()); _ = builder.Services.AddLogging(c => c.AddInMemory()); + if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI"))) + { + _ = builder.AddParameter("LlmGatewayUrl", value: string.Empty); + _ = builder.AddParameter("LlmGatewayServiceAccountPath", value: string.Empty); + _ = builder.AddParameter("DocumentationElasticUrl", value: string.Empty); + _ = builder.AddParameter("DocumentationElasticApiKey", value: string.Empty); + } + + DistributedApplication = await builder.BuildAsync(); InMemoryLogger = DistributedApplication.Services.GetService()!; _ = DistributedApplication.StartAsync().WaitAsync(TimeSpan.FromMinutes(5), TestContext.Current.CancellationToken); From 07730d310b0a8e728a6a4d973fa5e98f29bf608c Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 13:09:32 +0200 Subject: [PATCH 12/13] Another attempt at empty parameters in test --- .../AssembleFixture.cs | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index 414ccd1ad..e5cdabb2b 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -18,6 +18,23 @@ namespace Elastic.Assembler.IntegrationTests; +public static partial class DistributedApplicationExtensions +{ + /// + /// Ensures all parameters in the application configuration have values set. + /// + public static TBuilder WithEmptyParameters(this TBuilder builder) + where TBuilder : IDistributedApplicationTestingBuilder + { + var parameters = builder.Resources.OfType().Where(p => !p.IsConnectionString).ToList(); + foreach (var parameter in parameters) + builder.Configuration[$"Parameters:{parameter.Name}"] = string.Empty; + + return builder; + } +} + + public class DocumentationFixture : IAsyncLifetime { public DistributedApplication DistributedApplication { get; private set; } = null!; @@ -34,27 +51,12 @@ public async ValueTask InitializeAsync() options.DisableDashboard = true; options.AllowUnsecuredTransport = true; options.EnableResourceLogging = true; - if (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CI"))) - { - var config = new ConfigurationManager(); - config["Parameters:DocumentationElasticUrl"] = string.Empty; - config["Parameters:DocumentationElasticApiKey"] = string.Empty; - config["Parameters:LlmGatewayUrl"] = string.Empty; - config["Parameters:LlmGatewayServiceAccountPath"] = string.Empty; - settings.Configuration = config; - } } ); + _ = builder.WithEmptyParameters(); _ = builder.Services.AddElasticDocumentationLogging(LogLevel.Information); _ = builder.Services.AddLogging(c => c.AddXUnit()); _ = builder.Services.AddLogging(c => c.AddInMemory()); - if (!string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable("CI"))) - { - _ = builder.AddParameter("LlmGatewayUrl", value: string.Empty); - _ = builder.AddParameter("LlmGatewayServiceAccountPath", value: string.Empty); - _ = builder.AddParameter("DocumentationElasticUrl", value: string.Empty); - _ = builder.AddParameter("DocumentationElasticApiKey", value: string.Empty); - } DistributedApplication = await builder.BuildAsync(); From 43e352628e5cab45d8fbd7c64e44f91096cbd54b Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 21 Aug 2025 13:14:17 +0200 Subject: [PATCH 13/13] ensure DocumentationElasticUrl is a valid example url --- .../Elastic.Assembler.IntegrationTests/AssembleFixture.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs index e5cdabb2b..ad5a02944 100644 --- a/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs +++ b/tests-integration/Elastic.Assembler.IntegrationTests/AssembleFixture.cs @@ -30,6 +30,7 @@ public static TBuilder WithEmptyParameters(this TBuilder builder) foreach (var parameter in parameters) builder.Configuration[$"Parameters:{parameter.Name}"] = string.Empty; + builder.Configuration[$"Parameters:DocumentationElasticUrl"] = "http://localhost.example:9200"; return builder; } }