CI pipeline monitor label fixes#128501
Open
kg wants to merge 13 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the CI pipeline monitor GitHub-issue publishing flow to (1) always apply a default “blocking-clean-ci-optional” label when creating new issues, and (2) add a validation step that checks failure-suggested labels against the live set of labels in the dotnet/runtime repo.
Changes:
- Add
blocking-clean-ci-optionaltogh issue createinvocations for newly filed issues. - Add a validator step that fetches repo labels from the GitHub REST API and flags invalid failure labels before
update_github.pyruns.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| .github/skills/ci-pipeline-monitor/scripts/validate_results.py | Adds a new “validate labels exist in dotnet/runtime” check by querying the GitHub labels API. |
| .github/skills/ci-pipeline-monitor/scripts/update_github.py | Adds blocking-clean-ci-optional label when creating a new GitHub issue via gh. |
Contributor
Author
|
One problem with doing this is that the github REST API has a limit of 60 queries per hour. So running this script more than a few times will hit the rate limit, as I just have and no longer can test it until later on today. |
…nt to use for fixes Address copilot feedback
…s will succeed even if we hit a rate limit, as long as one validation run has succeeded
| import urllib.request | ||
|
|
||
| LABELS_API_ENDPOINT = "https://api.github.com/repos/dotnet/runtime/labels" | ||
| LABELS_CACHE_FILE = os.path.join(__file__, "..", "cached_labels.json") |
Comment on lines
87
to
90
| gh_issue_command.append("create") | ||
| gh_issue_command.append("--label") | ||
| gh_issue_command.append("blocking-clean-ci-optional") | ||
| creating_new_issue = True |
| import urllib.request | ||
|
|
||
| LABELS_API_ENDPOINT = "https://api.github.com/repos/dotnet/runtime/labels" | ||
| LABELS_CACHE_FILE = os.path.join(__file__, "..", "cached_labels.json") |
…t invokes it using a non-unicode codepage sometimes and causes it to crash
| import urllib.request | ||
|
|
||
| LABELS_API_ENDPOINT = "https://api.github.com/repos/dotnet/runtime/labels" | ||
| LABELS_CACHE_FILE = os.path.join(__file__, "..", "cached_labels.json") |
This was referenced Jun 18, 2026
Closed
This was referenced Jun 28, 2026
This was referenced Jul 6, 2026
Closed
Open
kotlarmilos
added a commit
that referenced
this pull request
Jul 10, 2026
… on Apple NativeAOT (refs #130253) (#130328) Workflow artifact: ci-fix Artifact kind: help Linked KBE: #130253 > [!IMPORTANT] > **Help-wanted / needs-review draft.** This is a best-effort candidate fix that I could **not** build-validate in the agent environment (no Apple NativeAOT cross-build is available here). It is a genuine, **non-muting** change — it does not disable, skip, or `[ActiveIssue]` the test. Please validate on the Apple NativeAOT library-test legs before merging. ## Root cause On the Apple **NativeAOT** library-test legs (`iossimulator` / `maccatalyst` `AllSubsets_NativeAOT`, e.g. build [1494308](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1494308)), `System.Diagnostics.Tests.FileVersionInfoTest.FileVersionInfo_CustomManagedAssembly` fails with: ``` System.IO.FileNotFoundException : .../System.Diagnostics.FileVersionInfo.Tests.app/System.Diagnostics.FileVersionInfo.TestAssembly.dll ``` The test opens its companion assembly **by file path** to read PE version metadata — it never loads or executes it (`FileVersionInfoTest.cs:25`): ```csharp VerifyVersionInfo(Path.Combine(Directory.GetCurrentDirectory(), TestAssemblyFileName), ...); // TestAssemblyFileName = "System.Diagnostics.FileVersionInfo.TestAssembly.dll" ``` In the test `.csproj`, for Apple mobile the TestAssembly was included as a **plain `<ProjectReference>`**. Under NativeAOT that assembly is compiled into the native image, so **no loose `.dll` is deployed** next to the app and `Directory.GetCurrentDirectory()/...TestAssembly.dll` does not exist → `FileNotFoundException`. Under Apple **Mono** the managed assembly is still deployed as a file, which is why the test passes there. The existing `[ActiveIssue(".../124344", IsAppleMobile && IsCoreCLR)]` on this test does **not** apply here: `PlatformDetection.IsCoreCLR => IsNotMonoRuntime && IsNotNativeAot` is `false` under NativeAOT, so the test genuinely runs (and fails) on the NativeAOT leg. These NativeAOT library tests on Apple mobile were newly enabled by #125437. ## Candidate change Deploy the TestAssembly as a **Content** data file on the Apple NativeAOT leg (exactly as already done for desktop), while keeping the plain project reference for Apple **Mono**, where the [#46856](#46856) vfs-mapping workaround still applies: - `TargetsAppleMobile && UseNativeAotRuntime` → Content copy (**new**). - `TargetsAppleMobile && !UseNativeAotRuntime` (Mono) → plain reference (unchanged). - Browser and desktop → unchanged. Only the Apple-NativeAOT branch changes; the MSBuild conditions leave Mono Apple, browser, and desktop provably untouched, and never select both `<ProjectReference>` items at once. ## What is unverified (why this is a draft) - I could not run an Apple NativeAOT build here, so I have **not** confirmed the Content `.dll` actually lands at `Directory.GetCurrentDirectory()` inside the NativeAOT `.app` bundle, nor that the AppleAppBuilder NativeAOT library-mode path packages Content identically to Mono. - Reasoning it should work: sibling Content files in this project (`NativeLibrary.dll`, `NativeConsoleApp.exe`) are already deployed and found on Apple, and under NativeAOT there is no managed-assembly vfs mapping for #46856 to collide with — but this needs a CI run to confirm. ## Validation - Build-validated: **No** — Apple NativeAOT cross-build is not available in the agent environment. - Requested: run `System.Diagnostics.FileVersionInfo.Tests` on the `iossimulator` / `maccatalyst` `AllSubsets_NativeAOT` legs and confirm `FileVersionInfo_CustomManagedAssembly` passes with no `identical vfs mappings` packaging error. ## Suggested reviewers / area contacts These tests were enabled on Apple NativeAOT by #125437 — `@kotlarmilos`, could you (or the mobile/NativeAOT folks) confirm the Content asset is bundled at the app's working directory under NativeAOT library mode? Area owners: `@dotnet/area-system-diagnostics`. > [!NOTE] > This PR was generated by an AI/Copilot agent (`ci-failure-fix`) as a best-effort, non-muting candidate fix. Please review carefully before merging. > [!NOTE] > <details> > <summary>🔒 Integrity filter blocked 17 items</summary> > > The following items were blocked because they don't meet the GitHub integrity level. > > - [#128501](#128501) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#104998](#104998) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#104750](#104750) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#97491](#97491) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#76276](#76276) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#78999](#78999) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#76417](#76417) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#69571](#69571) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#62435](#62435) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#61444](#61444) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#35376](#35376) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#193](#193) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#34218](#34218) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#38914](#38914) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#44747](#44747) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - #130125 `issue_read`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - ... and 1 more item > > To allow these resources, lower `min-integrity` in your GitHub frontmatter: > > ```yaml > tools: > github: > min-integrity: approved # merged | approved | unapproved | none > ``` > > </details> > Generated by [CI Outer-Loop Failure Fixer](https://github.com/dotnet/runtime/actions/runs/28910596516/agentic_workflow) · ● 9.3M · [◷](https://github.com/search?q=repo%3Adotnet%2Fruntime+%22gh-aw-workflow-id%3A+ci-failure-fix%22&type=pullrequests) <!-- gh-aw-agentic-workflow: CI Outer-Loop Failure Fixer, engine: copilot, version: 1.0.40, model: claude-opus-4.8, id: 28910596516, workflow_id: ci-failure-fix, run: https://github.com/dotnet/runtime/actions/runs/28910596516 --> <!-- gh-aw-workflow-id: ci-failure-fix --> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
eiriktsarpalis
pushed a commit
that referenced
this pull request
Jul 15, 2026
… on Apple NativeAOT (refs #130253) (#130328) Workflow artifact: ci-fix Artifact kind: help Linked KBE: #130253 > [!IMPORTANT] > **Help-wanted / needs-review draft.** This is a best-effort candidate fix that I could **not** build-validate in the agent environment (no Apple NativeAOT cross-build is available here). It is a genuine, **non-muting** change — it does not disable, skip, or `[ActiveIssue]` the test. Please validate on the Apple NativeAOT library-test legs before merging. ## Root cause On the Apple **NativeAOT** library-test legs (`iossimulator` / `maccatalyst` `AllSubsets_NativeAOT`, e.g. build [1494308](https://dev.azure.com/dnceng-public/public/_build/results?buildId=1494308)), `System.Diagnostics.Tests.FileVersionInfoTest.FileVersionInfo_CustomManagedAssembly` fails with: ``` System.IO.FileNotFoundException : .../System.Diagnostics.FileVersionInfo.Tests.app/System.Diagnostics.FileVersionInfo.TestAssembly.dll ``` The test opens its companion assembly **by file path** to read PE version metadata — it never loads or executes it (`FileVersionInfoTest.cs:25`): ```csharp VerifyVersionInfo(Path.Combine(Directory.GetCurrentDirectory(), TestAssemblyFileName), ...); // TestAssemblyFileName = "System.Diagnostics.FileVersionInfo.TestAssembly.dll" ``` In the test `.csproj`, for Apple mobile the TestAssembly was included as a **plain `<ProjectReference>`**. Under NativeAOT that assembly is compiled into the native image, so **no loose `.dll` is deployed** next to the app and `Directory.GetCurrentDirectory()/...TestAssembly.dll` does not exist → `FileNotFoundException`. Under Apple **Mono** the managed assembly is still deployed as a file, which is why the test passes there. The existing `[ActiveIssue(".../124344", IsAppleMobile && IsCoreCLR)]` on this test does **not** apply here: `PlatformDetection.IsCoreCLR => IsNotMonoRuntime && IsNotNativeAot` is `false` under NativeAOT, so the test genuinely runs (and fails) on the NativeAOT leg. These NativeAOT library tests on Apple mobile were newly enabled by #125437. ## Candidate change Deploy the TestAssembly as a **Content** data file on the Apple NativeAOT leg (exactly as already done for desktop), while keeping the plain project reference for Apple **Mono**, where the [#46856](#46856) vfs-mapping workaround still applies: - `TargetsAppleMobile && UseNativeAotRuntime` → Content copy (**new**). - `TargetsAppleMobile && !UseNativeAotRuntime` (Mono) → plain reference (unchanged). - Browser and desktop → unchanged. Only the Apple-NativeAOT branch changes; the MSBuild conditions leave Mono Apple, browser, and desktop provably untouched, and never select both `<ProjectReference>` items at once. ## What is unverified (why this is a draft) - I could not run an Apple NativeAOT build here, so I have **not** confirmed the Content `.dll` actually lands at `Directory.GetCurrentDirectory()` inside the NativeAOT `.app` bundle, nor that the AppleAppBuilder NativeAOT library-mode path packages Content identically to Mono. - Reasoning it should work: sibling Content files in this project (`NativeLibrary.dll`, `NativeConsoleApp.exe`) are already deployed and found on Apple, and under NativeAOT there is no managed-assembly vfs mapping for #46856 to collide with — but this needs a CI run to confirm. ## Validation - Build-validated: **No** — Apple NativeAOT cross-build is not available in the agent environment. - Requested: run `System.Diagnostics.FileVersionInfo.Tests` on the `iossimulator` / `maccatalyst` `AllSubsets_NativeAOT` legs and confirm `FileVersionInfo_CustomManagedAssembly` passes with no `identical vfs mappings` packaging error. ## Suggested reviewers / area contacts These tests were enabled on Apple NativeAOT by #125437 — `@kotlarmilos`, could you (or the mobile/NativeAOT folks) confirm the Content asset is bundled at the app's working directory under NativeAOT library mode? Area owners: `@dotnet/area-system-diagnostics`. > [!NOTE] > This PR was generated by an AI/Copilot agent (`ci-failure-fix`) as a best-effort, non-muting candidate fix. Please review carefully before merging. > [!NOTE] > <details> > <summary>🔒 Integrity filter blocked 17 items</summary> > > The following items were blocked because they don't meet the GitHub integrity level. > > - [#128501](#128501) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#104998](#104998) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#104750](#104750) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#97491](#97491) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#76276](#76276) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#78999](#78999) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#76417](#76417) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#69571](#69571) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#62435](#62435) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#61444](#61444) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#35376](#35376) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#193](#193) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#34218](#34218) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#38914](#38914) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - [#44747](#44747) `search_pull_requests`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - #130125 `issue_read`: has lower integrity than agent requires. The agent cannot read data with integrity below "approved". > - ... and 1 more item > > To allow these resources, lower `min-integrity` in your GitHub frontmatter: > > ```yaml > tools: > github: > min-integrity: approved # merged | approved | unapproved | none > ``` > > </details> > Generated by [CI Outer-Loop Failure Fixer](https://github.com/dotnet/runtime/actions/runs/28910596516/agentic_workflow) · ● 9.3M · [◷](https://github.com/search?q=repo%3Adotnet%2Fruntime+%22gh-aw-workflow-id%3A+ci-failure-fix%22&type=pullrequests) <!-- gh-aw-agentic-workflow: CI Outer-Loop Failure Fixer, engine: copilot, version: 1.0.40, model: claude-opus-4.8, id: 28910596516, workflow_id: ci-failure-fix, run: https://github.com/dotnet/runtime/actions/runs/28910596516 --> <!-- gh-aw-workflow-id: ci-failure-fix --> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
cc @JulieLeeMSFT