Skip to content

feat: publish telemetry reporter GitHub releases - #3280

Open
Tom Meschter (tmeschter) wants to merge 3 commits into
microsoft:mainfrom
tmeschter:tmeschter-issue-373
Open

Tom Meschter (tmeschter) wants to merge 3 commits into
microsoft:mainfrom
tmeschter:tmeschter-issue-373

Conversation

@tmeschter

@tmeschter Tom Meschter (tmeschter) commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Add controlled GitHub release publishing for the telemetry reporter Native AOT packages.

Problem

The telemetry reporter pipeline produces verified packages for six runtime identifiers, but there was no manually controlled process to publish those packages as a GitHub release. Release artifacts also need to be guaranteed to come from the exact commit being released.

Solution

  • Keep scheduled runs of telemetry-reporter - nightly focused on change detection, building, and verification.
  • Add a Release stage to manually queued main runs of the same pipeline, following the Azure SDK release-pipeline pattern.
  • Build and verify the full matrix in the manual run, then release artifacts produced earlier in that same run so the commit SHA and packages cannot drift across runs.
  • Retain the release run, authenticate with the Azure SDK Automation GitHub App, and validate the manifest against the current build ID and source commit.
  • Create the GitHub release as a draft, upload all six runtime ZIPs, and publish it as Latest only after every upload succeeds. Delete the draft and tag on failure so the run can be retried.
  • Keep symbols, checksums, build information, and the manifest in the retained Azure DevOps run.

Validation

  • PowerShell scripts and Azure DevOps YAML parse successfully.
  • Synthetic artifacts verified manual-run manifest provenance and all six runtime assets.
  • Scheduled manifests are rejected by the release publisher.
  • Manual initialization builds the complete platform matrix.
  • Mocked GitHub CLI tests verified draft creation, asset upload, publication, and cleanup after an upload failure.

Operational setup

The existing telemetry-reporter - nightly definition remains the only pipeline definition. It must be authorized to create retention leases and use AzureSDKEngKeyVault Secrets. The Azure SDK Automation GitHub App installation must include microsoft/GitHub-Copilot-for-Azure with Contents: write permission.

Fixes microsoft/GitHub-Copilot-for-Azure-pr#373

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 28, 2026 17:12
@tmeschter
Tom Meschter (tmeschter) requested a review from a team as a code owner September 28, 2026 17:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Critical retention-token handling and additional authentication, retention, and release-upload defects must be fixed before approval.

Review effort: Lite
Findings: 1 High severity · 2 Medium severity

Open (3)
What changed in this PR

Separates telemetry reporter nightly artifact verification from manually controlled GitHub release publishing.

Changes:

  • Adds release-candidate tagging and a manual release pipeline.
  • Adds artifact validation, retention leases, and GitHub App authentication.
  • Publishes runtime ZIPs and updates pipeline documentation.
  • Unresolved defects remain in retention handling, authentication, and release-upload recovery.
File Description
telemetry-reporter/​README.md Documents nightly and release workflows.
telemetry-reporter/​eng/​scripts/​Test-NightlyBuildArtifacts.ps1 Adds release metadata validation.
telemetry-reporter/​eng/​scripts/​Publish-NightlyRelease.ps1 Validates and publishes runtime archives.
telemetry-reporter/​eng/​scripts/​New-NightlyBuildInfo.ps1 Excludes release-only changes from nightly builds.
pipelines/​telemetry-reporter-release.yml Defines the manual release pipeline.
pipelines/​telemetry-reporter-nightly.yml Tags eligible nightly runs.
pipelines/​README.md Documents pipeline setup and operation.
eng/​common/​scripts/​login-to-github.ps1 Mints GitHub App tokens.
eng/​common/​scripts/​Add-RetentionLease.ps1 Manages Azure DevOps retention leases.
eng/​common/​pipelines/​templates/​steps/​retain-run.yml Provides retention pipeline steps.
eng/​common/​pipelines/​templates/​steps/​login-to-github.yml Provides GitHub authentication steps.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread eng/common/pipelines/templates/steps/retain-run.yml Outdated
Comment thread eng/common/scripts/Add-RetentionLease.ps1 Outdated
Comment thread telemetry-reporter/eng/scripts/Publish-NightlyRelease.ps1 Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment thread pipelines/README.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@tmeschter Tom Meschter (tmeschter) changed the title feat: add separate telemetry reporter release pipeline feat: publish telemetry reporter GitHub releases Sep 29, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants