Update CI versioning and OpenTelemetry configuration#2204
Conversation
There was a problem hiding this comment.
Pull request overview
Promotes CI/versioning and observability (OpenTelemetry) infrastructure changes into main, aligning Docker image versioning with CI-calculated MinVer output and removing Prometheus scraping endpoint exposure from the Web/Job apps.
Changes:
- CI: checkout PR head SHA for version calculation and pass
MinVerVersionOverrideinto Docker builds. - Observability: remove Prometheus exporter + scraping endpoints; keep OTLP exporter behavior.
- Repo hygiene: update workspace settings and document the observability behavior in
AGENTS.md.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Exceptionless.Web/Startup.cs | Removes Prometheus scraping endpoint middleware from the Web app. |
| src/Exceptionless.Web/Exceptionless.Web.csproj | Drops Prometheus exporter package reference; minor XML formatting changes. |
| src/Exceptionless.Web/ApmExtensions.cs | Removes Prometheus metrics exporter configuration (OTLP remains). |
| src/Exceptionless.Job/Program.cs | Removes Prometheus scraping endpoint middleware from the Job host. |
| src/Exceptionless.Job/Exceptionless.Job.csproj | Drops Prometheus exporter package reference; minor XML formatting changes. |
| Dockerfile | Adds MinVerVersionOverride build arg and forwards it into dotnet build. |
| AGENTS.md | Documents OTLP-only behavior and lack of Prometheus scraping endpoints. |
| .vscode/settings.json | Disables format-on-save and changes TypeScript SDK path setting. |
| .github/workflows/build.yaml | Uses PR head SHA for version checkout and passes MinVerVersionOverride into Docker builds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Copy everything else and build app | ||
| COPY . . | ||
| RUN dotnet build -c Release | ||
| RUN dotnet build -c Release /p:MinVerVersionOverride=${MinVerVersionOverride} |
There was a problem hiding this comment.
MinVerVersionOverride build arg is optional, but the dotnet build step always sets /p:MinVerVersionOverride= when the arg isn’t provided. MinVer treats MinVerVersionOverride as an override value, and an empty string can cause version calculation/build to fail. This will also affect any Docker builds that don’t pass the build arg (e.g., the arm64 release workflow builds from the root Dockerfile without --build-arg). Consider only adding the MSBuild property when the arg is non-empty, or provide a safe default/fallback path for local/non-CI builds.
| RUN dotnet build -c Release /p:MinVerVersionOverride=${MinVerVersionOverride} | |
| RUN if [ -n "${MinVerVersionOverride}" ]; then \ | |
| dotnet build -c Release /p:MinVerVersionOverride="${MinVerVersionOverride}"; \ | |
| else \ | |
| dotnet build -c Release; \ | |
| fi |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <DefaultItemExcludes> | ||
| $(DefaultItemExcludes);$(SpaRoot)node_modules\**;$(AngularSpaRoot)node_modules\**;</DefaultItemExcludes> |
There was a problem hiding this comment.
DefaultItemExcludes is now split across lines with indentation/newlines inside the element value. MSBuild property values preserve this whitespace, which can change the exclude glob list (e.g., leading spaces before the expanded $(DefaultItemExcludes)), potentially causing default excludes like bin/**/obj/** to stop matching and balloon the project item set. Keep the property value on a single line (or otherwise ensure there’s no leading whitespace/newline in the value).
| <DefaultItemExcludes> | |
| $(DefaultItemExcludes);$(SpaRoot)node_modules\**;$(AngularSpaRoot)node_modules\**;</DefaultItemExcludes> | |
| <DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules\**;$(AngularSpaRoot)node_modules\**;</DefaultItemExcludes> |
| <PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.15.2-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" | ||
| Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" | ||
| Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.0" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="1.15.0-beta.1" /> |
There was a problem hiding this comment.
PR description mentions moving OpenTelemetry package version management to shared build props, but these PackageReference entries still hardcode versions in the project file. If the intent is centralized versioning, consider moving these versions to a shared .props/Directory.Packages.props and omitting Version attributes here; otherwise, the PR description may need updating to match the actual change.
| <PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.15.2-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.15.2" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.StackExchangeRedis" | ||
| Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.ElasticsearchClient" | ||
| Version="1.15.0-beta.1" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.15.0" /> | ||
| <PackageReference Include="OpenTelemetry.Instrumentation.Process" Version="1.15.0-beta.1" /> |
There was a problem hiding this comment.
PR description mentions managing OpenTelemetry package versions via shared build props, but this project still pins explicit Version attributes on the OpenTelemetry PackageReferences. If central version management is intended, move versions to a shared props/Directory.Packages.props and remove them here (or update the PR description if centralization is out of scope).
This PR promotes the non-Stripe infrastructure changes from the
feature/next-stripebranch intomain.Summary:
MinVerVersionOverridefrom CI into Docker builds so image builds use the expected versionNotes:
Validation:
dotnet build /property:GenerateFullPaths=true /consoleloggerparameters:NoSummary