Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6a4e43c
Split the VS PR stage separately from the upload steps
pieandcakes Oct 13, 2025
9ca01b2
Split into jobs instead of stages
AArnott Oct 16, 2025
e302f54
Merge pull request 424 from pieandcakes/users/piel/stageinsertion
AArnott Oct 16, 2025
d48cdf8
Fix GitHub Actions env file writes (528)
AArnott Jun 10, 2026
910fad8
Update actions/checkout action to v6.0.3
AArnott Jun 10, 2026
72ac8a9
Improve PR checks after fixing dependency PRs
AArnott Jun 10, 2026
937aeb0
Update Microsoft Testing Platform to 18.8.0
AArnott Jun 11, 2026
a8d7f71
Merge branch 'main' into microbuild
AArnott Jun 11, 2026
8ce74d4
Support multi-line env var values properly
AArnott Jun 15, 2026
22ebcf5
Centralize the github env var function
AArnott Jun 15, 2026
2de1d1f
Merge pull request #529 from AArnott/betterGitHubEnvVars
AArnott Jun 15, 2026
1600fb8
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jun 15, 2026
4a5b860
Update dependency powershell to v7.6.3 (#530)
renovate[bot] Jun 17, 2026
e57033f
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jun 17, 2026
3fcf71e
Update actions/checkout action to v7
AArnott Jun 18, 2026
697a943
Merge branch 'main' into microbuild
AArnott Jun 18, 2026
24026df
Merge remote-tracking branch 'origin/microbuild_staging' into microbuild
AArnott Jun 18, 2026
9319738
Update nbgv and nerdbank.gitversioning updates to 3.10.85 (531)
renovate[bot] Jun 19, 2026
3f53cb6
Revert unintended whitespace changes
AArnott Jun 20, 2026
277d401
Merge branch 'main' into microbuild
AArnott Jun 20, 2026
8a8921a
Update jobs to ubuntu 24
AArnott Jun 22, 2026
d7904f8
Update Dockerfile and global.json updates (532)
renovate[bot] Jun 25, 2026
a1ba569
Update Microsoft Testing Platform to 2.3.0
renovate[bot] Jul 7, 2026
35daa41
Pin Microsoft.Testing.Extensions.Telemetry to the common MTP version
AArnott Jul 7, 2026
3291087
Merge pull request 533 from AArnott/renovate/microsoft-testing-platform
AArnott Jul 7, 2026
e11a693
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 7, 2026
eba6257
Revert "Use default configuration for Network Isolation" (#534)
AArnott Jul 7, 2026
d6e19d2
Merge latest from Library.Template
invalid-email-address Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"powershell": {
"version": "7.6.2",
"version": "7.6.3",
"commands": [
"pwsh"
],
Expand All @@ -17,7 +17,7 @@
"rollForward": false
},
"nbgv": {
"version": "3.9.50",
"version": "3.10.85",
"commands": [
"nbgv"
],
Expand Down
1 change: 1 addition & 0 deletions .github/skills/bundle-dependency-prs/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Before aggregating PRs, first try to fix any individual dependency update PRs wi

1. For the dependency PRs with failing build or test PR checks, check out their source branch and fix any issues.
2. Push your fixes as fresh commits to the individual dependency PRs.
If pushing to a repo in the `microsoft` org when the PR is authord by `renovate`, follow-up the push with a PR comment that says exactly this: "/azp run" which triggers PR checks to re-run.
3. If you can't fix a particular PR, add a comment to the PR describing your attempt and outcome.

## Group dependency PRs that are ready to go
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docs_validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@ on:
workflow_dispatch:
push:
branches:
- main
- microbuild
- main
- microbuild

jobs:
build:
name: 📚 Doc validation
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: 🔗 Markup Link Checker (mlc)
uses: becheran/mlc@7ec24825cefe0c9c8c6bac48430e1f69e3ec356e # v1.2.0
with:
args: --do-not-warn-for-redirect-to https://learn.microsoft.com*,https://dotnet.microsoft.com/*,https://dev.azure.com/*,https://app.codecov.io/*,https://badges.gitter.im/*,https://github.com/*,https://app.gitter.im/* -p docfx -i https://aka.ms/onboardsupport,https://aka.ms/spot,https://msrc.microsoft.com/*,https://www.microsoft.com/msrc*,https://microsoft.com/msrc*,https://www.npmjs.com/package/*,https://get.dot.net/,https://microsoft.sharepoint.com/*
args: --do-not-warn-for-redirect-to https://learn.microsoft.com*,https://dotnet.microsoft.com/*,https://dev.azure.com/*,https://app.codecov.io/* -p docfx -i https://aka.ms/onboardsupport,https://aka.ms/spot,https://msrc.microsoft.com/*,https://www.microsoft.com/msrc*,https://microsoft.com/msrc*,https://www.npmjs.com/package/*,https://get.dot.net/
- name: ⚙ Install prerequisites
run: |
./init.ps1 -UpgradePrerequisites
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/libtemplate-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.

Expand Down
7 changes: 4 additions & 3 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<MicrosoftTestingPlatformVersion>2.2.3</MicrosoftTestingPlatformVersion>
<MicrosoftTestingPlatformVersion>2.3.0</MicrosoftTestingPlatformVersion>
<MicroBuildVersion>2.0.226</MicroBuildVersion>
<CodeAnalysisVersion>3.11.0</CodeAnalysisVersion>
<CodefixTestingVersion>1.1.4</CodefixTestingVersion>
Expand Down Expand Up @@ -41,9 +41,10 @@
<PackageVersion Include="Xunit.StaFact" Version="3.0.13" />
</ItemGroup>
<ItemGroup Label="Library.Template">
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.7.0" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.8.0" />
<PackageVersion Include="Microsoft.Testing.Extensions.CrashDump" Version="$(MicrosoftTestingPlatformVersion)" />
<PackageVersion Include="Microsoft.Testing.Extensions.HangDump" Version="$(MicrosoftTestingPlatformVersion)" />
<PackageVersion Include="Microsoft.Testing.Extensions.Telemetry" Version="$(MicrosoftTestingPlatformVersion)" />
<PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="$(MicrosoftTestingPlatformVersion)" />
<PackageVersion Include="Microsoft.VisualStudio.Internal.MicroBuild.NonShipping" Version="$(MicroBuildVersion)" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.2" />
Expand All @@ -56,7 +57,7 @@
<GlobalPackageReference Include="DotNetAnalyzers.DocumentationAnalyzers" Version="1.0.0-beta.59" />
<GlobalPackageReference Include="Microsoft.VisualStudio.Internal.MicroBuild.VisualStudio" Version="$(MicroBuildVersion)" />
<!-- The condition works around https://github.com/dotnet/sdk/issues/44951 -->
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.9.50" Condition="!('$(TF_BUILD)'=='true' and '$(dotnetformat)'=='true')" />
<GlobalPackageReference Include="Nerdbank.GitVersioning" Version="3.10.85" Condition="!('$(TF_BUILD)'=='true' and '$(dotnetformat)'=='true')" />
<GlobalPackageReference Include="PolySharp" Version="1.16.0" />
<GlobalPackageReference Include="StyleCop.Analyzers.Unstable" Version="1.2.0.556" />
</ItemGroup>
Expand Down
4 changes: 3 additions & 1 deletion azure-pipelines/archive-sourcecode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable

Expand All @@ -45,7 +47,7 @@ extends:
pool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux

steps:
Expand Down
4 changes: 3 additions & 1 deletion azure-pipelines/libtemplate-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Unofficial.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
Expand All @@ -45,7 +47,7 @@ extends:
pool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
steps:
- checkout: self
Expand Down
4 changes: 3 additions & 1 deletion azure-pipelines/official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable
codeSignValidation:
Expand Down Expand Up @@ -74,7 +76,7 @@ extends:
linuxPool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
macOSPool:
name: Azure Pipelines
Expand Down
2 changes: 1 addition & 1 deletion azure-pipelines/prepare-insertion-stages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ stages:
pool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
templateContext:
outputs:
Expand Down
6 changes: 4 additions & 2 deletions azure-pipelines/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable

Expand All @@ -31,7 +33,7 @@ extends:
pool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
templateContext:
outputs:
Expand All @@ -54,7 +56,7 @@ extends:
pool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
templateContext:
type: releaseJob
Expand Down
4 changes: 3 additions & 1 deletion azure-pipelines/unofficial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Unofficial.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable
credscan:
Expand Down Expand Up @@ -88,7 +90,7 @@ extends:
linuxPool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
macOSPool:
name: Azure Pipelines
Expand Down
16 changes: 14 additions & 2 deletions azure-pipelines/vs-insertion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable
sbom:
Expand All @@ -30,8 +32,8 @@ extends:
stages:
- stage: insertion
jobs:
- job: insertion
displayName: VS insertion
- job: upload
displayName: Upload VS payload
pool: VSEng-MicroBuildVSStable
templateContext:
outputParentDirectory: $(Pipeline.Workspace)/CI
Expand All @@ -57,6 +59,16 @@ extends:
packageParentPath: $(Pipeline.Workspace)/CI/VSInsertion-Windows
allowPackageConflicts: true
publishVstsFeed: VS

- job: insert
dependsOn: upload
displayName: VS insertion
pool: VSEngSS-MicroBuild2022-1ES
templateContext:
outputParentDirectory: $(Pipeline.Workspace)/CI
steps:
- checkout: none
- template: azure-pipelines/release-deployment-prep.yml@self
- task: MicroBuildInsertVsPayload@5
displayName: 🏭 Insert VS Payload
inputs:
Expand Down
22 changes: 19 additions & 3 deletions azure-pipelines/vs-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ variables:
extends:
template: azure-pipelines/MicroBuild.1ES.Unofficial.yml@MicroBuildTemplate
parameters:
settings:
networkIsolationPolicy: Permissive,CFSClean2
sdl:
sourceAnalysisPool: VSEng-MicroBuildVSStable
credscan:
Expand All @@ -48,7 +50,7 @@ extends:
linuxPool:
name: AzurePipelines-EO
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04
- ImageOverride -equals 1ESPT-Ubuntu24.04
os: Linux
macOSPool:
name: Azure Pipelines
Expand All @@ -66,8 +68,8 @@ extends:
- stage: insertion
displayName: VS insertion
jobs:
- job: insertion
displayName: VS insertion
- job: upload
displayName: Upload VS payload
pool: VSEng-MicroBuildVSStable
steps:
- checkout: self
Expand Down Expand Up @@ -95,6 +97,20 @@ extends:
packageParentPath: $(Pipeline.Workspace)/VSInsertion-Windows
allowPackageConflicts: true
publishVstsFeed: VS

- job: insertion
displayName: VS insertion
dependsOn: upload
pool: VSEngSS-MicroBuild2022-1ES
steps:
- checkout: self
clean: true
fetchDepth: 1
- download: current
artifact: Variables-Windows
displayName: 🔻 Download Variables-Windows artifact
- powershell: $(Pipeline.Workspace)/Variables-Windows/_define.ps1
displayName: ⚙️ Set pipeline variables based on artifacts
- task: MicroBuildInsertVsPayload@5
Comment thread
AArnott marked this conversation as resolved.
displayName: 🏭 Insert VS Payload
inputs:
Expand Down
18 changes: 18 additions & 0 deletions tools/GitHubActions.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function Add-GitHubActionsEnvVariable {
param(
[string]$Path = $env:GITHUB_ENV,
[Parameter(Mandatory = $true)]
[string]$Name,
[Parameter(Mandatory = $true)]
[AllowEmptyString()]
[string]$Value
)

if ([string]::IsNullOrWhiteSpace($Name)) {
throw "GitHub Actions environment variable names must not be empty."
}

$utf8NoBom = [System.Text.UTF8Encoding]::new($false)
$delimiter = [guid]::NewGuid().ToString('N')
[System.IO.File]::AppendAllText($Path, "$Name<<$delimiter`n$Value`n$delimiter`n", $utf8NoBom)
}
17 changes: 10 additions & 7 deletions tools/Set-EnvVars.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
The CmdEnvScriptPath environment variable may be optionally set to a path to a cmd shell script to be created (or appended to if it already exists) that will set the environment variables in cmd.exe that are set within the PowerShell environment.
This is used by init.cmd in order to reapply any new environment variables to the parent cmd.exe process that were set in the powershell child process.
#>
[CmdletBinding(SupportsShouldProcess=$true)]
[CmdletBinding(SupportsShouldProcess = $true)]
Param(
[Parameter(Mandatory=$true, Position=1)]
[Parameter(Mandatory = $true, Position = 1)]
$Variables,
[string[]]$PrependPath
)

. "$PSScriptRoot\GitHubActions.ps1"

if ($Variables.Count -eq 0) {
return $true
}
Expand All @@ -27,7 +29,8 @@ $cmdInstructions = !$env:TF_BUILD -and !$env:GITHUB_ACTIONS -and !$env:CmdEnvScr
if ($cmdInstructions) {
Write-Warning "Environment variables have been set that will be lost because you're running under cmd.exe"
Write-Host "Environment variables that must be set manually:" -ForegroundColor Blue
} else {
}
else {
Write-Host "Environment variables set:" -ForegroundColor Blue
Write-Host ($Variables | Out-String)
if ($PrependPath) {
Expand All @@ -44,15 +47,15 @@ if ($env:GITHUB_ACTIONS) {
}

$CmdEnvScript = ''
$Variables.GetEnumerator() |% {
$Variables.GetEnumerator() | % {
Set-Item -LiteralPath env:$($_.Key) -Value $_.Value

# If we're running in a cloud CI, set these environment variables so they propagate.
if ($env:TF_BUILD) {
Write-Host "##vso[task.setvariable variable=$($_.Key);]$($_.Value)"
}
if ($env:GITHUB_ACTIONS) {
Add-Content -LiteralPath $env:GITHUB_ENV -Value "$($_.Key)=$($_.Value)"
Add-GitHubActionsEnvVariable -Name $_.Key -Value ([string]$_.Value)
}

if ($cmdInstructions) {
Expand All @@ -68,7 +71,7 @@ if ($IsMacOS -or $IsLinux) {
}

if ($PrependPath) {
$PrependPath |% {
$PrependPath | % {
$newPathValue = "$_$pathDelimiter$env:PATH"
Set-Item -LiteralPath env:PATH -Value $newPathValue
if ($cmdInstructions) {
Expand All @@ -79,7 +82,7 @@ if ($PrependPath) {
Write-Host "##vso[task.prependpath]$_"
}
if ($env:GITHUB_ACTIONS) {
Add-Content -LiteralPath $env:GITHUB_PATH -Value $_
Add-GitHubActionsEnvVariable -Name PATH -Value $newPathValue
}
Comment thread
AArnott marked this conversation as resolved.

$CmdEnvScript += "SET PATH=$_$pathDelimiter%PATH%"
Expand Down
Loading
Loading