Background
dotnet/sdk#54447 added DOTNET_CLI_TELEMETRY_SESSIONID, which lets CI seed the CLI telemetry session ID so separate dotnet processes from the same workflow can be correlated.
The SDK repo now stamps this at workflow scope where supported, and at job scope for special workflows whose schema does not support top-level env:
env:
DOTNET_CLI_TELEMETRY_SESSIONID: gha-${{ github.repository_id }}-${{ github.run_id }}-${{ github.run_attempt }}
and its Azure DevOps pipeline entry points:
variables:
- name: DOTNET_CLI_TELEMETRY_SESSIONID
value: azdo-$(System.CollectionId)-$(System.TeamProjectId)-$(Build.BuildId)
Doing this independently in every repository and workflow is easy to miss and makes the correlation format harder to keep consistent.
Question
Could Arcade provide this identifier in a cross-cutting way for Arcade-consuming repositories, so all dotnet invocations in a CI run inherit it without each repository or workflow defining it manually?
For Azure DevOps, eng/common/core-templates/job/job.yml already supplies DOTNET_CLI_TELEMETRY_PROFILE when telemetry is enabled, so that template or a shared variables template may be a natural place to supply the session ID. Is there an equivalent shared integration point for GitHub Actions workflows, or should this be handled through a reusable workflow/action or Arcade's common bootstrap scripts?
Desired behavior
- Arcade supplies a provider-prefixed, run-scoped
DOTNET_CLI_TELEMETRY_SESSIONID by default.
- Every
dotnet process in the same CI run inherits the same value.
- The value distinguishes repositories/projects and runs, and includes retry/attempt identity where the provider exposes it.
- Repositories can override the default when necessary.
- The convention and supported CI providers are documented and covered by template tests.
Related: dotnet/sdk#54447
Background
dotnet/sdk#54447 added
DOTNET_CLI_TELEMETRY_SESSIONID, which lets CI seed the CLI telemetry session ID so separatedotnetprocesses from the same workflow can be correlated.The SDK repo now stamps this at workflow scope where supported, and at job scope for special workflows whose schema does not support top-level
env:and its Azure DevOps pipeline entry points:
Doing this independently in every repository and workflow is easy to miss and makes the correlation format harder to keep consistent.
Question
Could Arcade provide this identifier in a cross-cutting way for Arcade-consuming repositories, so all
dotnetinvocations in a CI run inherit it without each repository or workflow defining it manually?For Azure DevOps,
eng/common/core-templates/job/job.ymlalready suppliesDOTNET_CLI_TELEMETRY_PROFILEwhen telemetry is enabled, so that template or a shared variables template may be a natural place to supply the session ID. Is there an equivalent shared integration point for GitHub Actions workflows, or should this be handled through a reusable workflow/action or Arcade's common bootstrap scripts?Desired behavior
DOTNET_CLI_TELEMETRY_SESSIONIDby default.dotnetprocess in the same CI run inherits the same value.Related: dotnet/sdk#54447