Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
1a7db8d
Update mcr.microsoft.com/dotnet/sdk:9.0.301-noble Docker digest to 21…
renovate[bot] Jun 20, 2025
f84cb0f
Update mcr.microsoft.com/dotnet/sdk:9.0.301-noble Docker digest to f3…
renovate[bot] Jun 20, 2025
d1219b5
Update dependency powershell to 7.5.2
renovate[bot] Jun 25, 2025
c14a73b
Re-enable static graph nuget restore
AArnott Jun 29, 2025
5396018
Update becheran/mlc action to v1 (#383)
renovate[bot] Jul 8, 2025
d9522ff
Update mcr.microsoft.com/dotnet/sdk:9.0.301-noble Docker digest to 23…
renovate[bot] Jul 8, 2025
200f811
Update mcr.microsoft.com/dotnet/sdk:9.0.301-noble Docker digest to 4f…
renovate[bot] Jul 8, 2025
11467d8
Update .NET SDK to v9.0.302
renovate[bot] Jul 9, 2025
eef5eee
Update dependency xunit.v3 to v3 (#387)
renovate[bot] Jul 14, 2025
6b1c4db
Update dependency xunit.runner.visualstudio to 3.1.2 (#386)
renovate[bot] Jul 14, 2025
5ff2084
update dependencies
devsko Jul 14, 2025
2102e05
Update mcr.microsoft.com/dotnet/sdk:9.0.302-noble Docker digest to d4…
renovate[bot] Jul 15, 2025
fe71729
Update dependency xunit.runner.visualstudio to 3.1.3
renovate[bot] Jul 16, 2025
77f38d4
Update Dockerfile and global.json updates to v9.0.303 (#394)
renovate[bot] Jul 18, 2025
28382fd
Update mcr.microsoft.com/dotnet/sdk:9.0.303-noble Docker digest to a9…
renovate[bot] Jul 30, 2025
6f665e4
Update mcr.microsoft.com/dotnet/sdk:9.0.303-noble Docker digest to 14…
renovate[bot] Jul 31, 2025
c2b6afa
Update Dockerfile and global.json updates to v9.0.304
renovate[bot] Aug 5, 2025
eb42f5f
Update actions/download-artifact action to v5 (#399)
renovate[bot] Aug 6, 2025
801d690
Update mcr.microsoft.com/dotnet/sdk:9.0.304-noble Docker digest to 1f…
renovate[bot] Aug 6, 2025
78241e3
Add copilot-instructions.md file
AArnott Aug 9, 2025
28cfd93
Fix up contributing to work better on linux
AArnott Aug 10, 2025
c4de4d0
Add copilot instructions about avoiding unstable tests
AArnott Aug 10, 2025
7f486cc
Update actions/checkout action to v5 (#402)
renovate[bot] Aug 11, 2025
dc3950f
Update xunit
renovate[bot] Aug 16, 2025
90069e4
Update mcr.microsoft.com/dotnet/sdk:9.0.304-noble Docker digest to 0b…
renovate[bot] Aug 20, 2025
640b1d1
Update actions/upload-pages-artifact action to v4 (#405)
renovate[bot] Aug 22, 2025
6e77b79
Move GitHub workflow token permissions to per-job
AArnott Aug 25, 2025
53aebc9
Update hyperlinks to learn.microsoft.com
AArnott Sep 5, 2025
25e8285
Remove stray backtick from CONTRIBUTING.md
AArnott Sep 8, 2025
4d2be89
Add `Install-NuGetPackage.ps1` script
AArnott Sep 8, 2025
c29f9af
Add switches to Install-NuGetPackage.ps1
AArnott Sep 8, 2025
fec70cf
Update Dockerfile and global.json updates to v9.0.305
renovate[bot] Sep 9, 2025
d71cf66
Update mcr.microsoft.com/dotnet/sdk:9.0.305-noble Docker digest to 80…
renovate[bot] Sep 10, 2025
1367101
Drop extra `Pop-Location` from `Install-NuGetPackage.ps1`
AArnott Sep 10, 2025
e40d505
Update dependency powershell to v7.5.3
renovate[bot] Sep 10, 2025
761109a
Add API compat testing
AArnott Sep 11, 2025
b199798
Switch API compat testing from dotnet tool to MSBuild
AArnott Sep 11, 2025
31d3166
Merge pull request #410 from AArnott/apicompat
AArnott Sep 11, 2025
af11e11
Fix stray period in doc
AArnott Sep 18, 2025
85815ca
Bump nuget.exe to 6.14.0
AArnott Sep 19, 2025
7bfb1d6
Update mcr.microsoft.com/dotnet/sdk:9.0.305-noble Docker digest to 60…
renovate[bot] Sep 24, 2025
0ec755f
Don't check npmjs.com doc links
AArnott Sep 26, 2025
04923ff
Add dotnet-tools.json to Solution Items
AArnott Sep 26, 2025
0b8462e
Skip testing get.dot.net links
AArnott Sep 26, 2025
a0fe97a
Update nbgv and nerdbank.gitversioning updates to 3.8.118 (#416)
renovate[bot] Sep 26, 2025
234e34d
Switch to NuGet Trusted Publishing
AArnott Sep 27, 2025
e574cb5
Update xunit (#417)
renovate[bot] Sep 28, 2025
8712b0e
Update dependency dotnet-coverage to v18 (#419)
renovate[bot] Sep 29, 2025
11ec88f
Update mcr.microsoft.com/dotnet/sdk:9.0.305-noble Docker digest to 8a…
renovate[bot] Oct 1, 2025
97119ef
Update dependency Microsoft.NET.Test.Sdk to v18 (#422)
renovate[bot] Oct 2, 2025
870263b
Update mcr.microsoft.com/dotnet/sdk:9.0.305-noble Docker digest to 9a…
renovate[bot] Oct 2, 2025
184e741
Add `repo` command as a CLI tool
AArnott Oct 7, 2025
705966a
Update dependency dotnet-coverage to v18.1.0
renovate[bot] Oct 8, 2025
461d00f
Update Dockerfile and global.json updates to v9.0.306
renovate[bot] Oct 15, 2025
206b88c
Update dependency powershell to v7.5.4 (#427)
renovate[bot] Oct 16, 2025
f072045
Update mcr.microsoft.com/dotnet/sdk:9.0.306-noble Docker digest to d8…
renovate[bot] Oct 17, 2025
9389c48
Switch from sln to slnx
AArnott Oct 23, 2025
d1ffba2
Fix template expansion after slnx rename
AArnott Oct 24, 2025
b725dee
Another template expansion fix
AArnott Oct 24, 2025
cbf20ad
Update dependency docfx to v2.78.4 (#429)
renovate[bot] Oct 24, 2025
4ee5904
Update GitHub Artifact Actions
renovate[bot] Oct 25, 2025
fe333c1
Update dependency xunit.v3 to 3.2.0
renovate[bot] Nov 3, 2025
ccb8e49
Update nbgv and nerdbank.gitversioning updates to 3.9.50
renovate[bot] Nov 5, 2025
26a3acc
Fix variable persistence when value includes a single quote
AArnott Nov 5, 2025
74d3a45
Update dependency Microsoft.NET.Test.Sdk to 18.0.1
renovate[bot] Nov 11, 2025
aaccf73
Build with the .NET 10 SDK
AArnott Nov 11, 2025
adb7870
Adapt to breaking .NET 10 SDK change
AArnott Nov 11, 2025
4a6f641
Fix ARM64 detection on macOS
AArnott Nov 12, 2025
00cdc91
Build with the .NET 10 SDK (#439)
AArnott Nov 12, 2025
e1aa37c
Pin mcr.microsoft.com/dotnet/sdk Docker tag to c7445f1
renovate[bot] Nov 12, 2025
ed20107
Bump C# language version to 14
AArnott Nov 12, 2025
e95eb88
Update actions/checkout digest to 93cb6ef
renovate[bot] Nov 17, 2025
91ee72e
Replace hard-coded codecov_token with secrets/variables
AArnott Nov 17, 2025
32a3cdd
Update actions/checkout action to v6 (443)
renovate[bot] Nov 20, 2025
585a2df
Use official URLs in Install-DotNetSdk.ps1
akoeplinger Nov 21, 2025
7357a05
Merge pull request 444 from akoeplinger:patch-1
AArnott Nov 22, 2025
1439223
Update dependency xunit.v3 to 3.2.1 (445)
renovate[bot] Nov 29, 2025
a23eb8d
Merge pull request 447 to Build on newer agents
AArnott Dec 2, 2025
064bff7
Update actions/checkout digest to 8e8c483 (448)
renovate[bot] Dec 2, 2025
26355f2
Better pinning of GitHub Actions
AArnott Dec 2, 2025
5ded58b
Update actions/checkout action to v6.0.1 (449)
renovate[bot] Dec 2, 2025
9a6d745
Update actions/deploy-pages action to v4.0.5 (450)
renovate[bot] Dec 2, 2025
89853ca
Remove stray backtick from README
AArnott Dec 3, 2025
4001958
Update NuGet/login action to v1.1.0 (451)
renovate[bot] Dec 3, 2025
fddc013
Opt into Microsoft Testing Platform (MTP) (#452)
AArnott Dec 7, 2025
f761f0f
Push to nuget.org before pushing to github release
AArnott Dec 7, 2025
e403560
Update to MTP v2 (#455)
AArnott Dec 7, 2025
a28d540
Update all MTP related packages at once (457)
AArnott Dec 7, 2025
f355f00
Fix test result publishing to AzDO (458)
AArnott Dec 7, 2025
3304d79
Update .NET SDK to v10.0.101 (#459)
renovate[bot] Dec 10, 2025
63de086
Drop package dependencies that MTP does not require
AArnott Dec 10, 2025
70e71e9
Merge pull request #460 from AArnott/dropOldDependencies
AArnott Dec 10, 2025
70980c3
Fix MTP test failure for MTP-incompatible projects under the test folder
AArnott Dec 10, 2025
307d5e3
Fix testing regression from last commit
AArnott Dec 11, 2025
5c9d625
Adjust how we use IsTestProject
AArnott Dec 11, 2025
762bd46
Expand applicability of extra args in `dotnet-test-cloud.ps1`
AArnott Dec 11, 2025
25c8c0d
Update becheran/mlc action to v1.1.0 (461)
renovate[bot] Dec 12, 2025
6dc6965
Update GitHub Artifact Actions (462)
renovate[bot] Dec 13, 2025
36de3c8
Update becheran/mlc action to v1.2.0 (463)
renovate[bot] Dec 14, 2025
6b1ad3c
Preserve exit codes better and organize switches
AArnott Dec 20, 2025
57248c7
Fix case sensitivity in dotnet-test-cloud
AArnott Jan 5, 2026
a385e05
Bump code coverage package/tool
AArnott Jan 5, 2026
cb87045
Merge pull request #467 from AArnott/fixCaseSensitivity
AArnott Jan 5, 2026
c3644df
Merge pull request #468 from AArnott/bumpDeps
AArnott Jan 5, 2026
2c344ee
.NET SDK 10 rtm
devsko Jan 11, 2026
732a464
merge Library.template
devsko Jan 11, 2026
2eec432
Update TZ data to 2025c release
devsko Jan 12, 2026
d7d1af6
Version 1.1
devsko Jan 12, 2026
3d93ad6
Spectre.Builder update
devsko Jan 12, 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
15 changes: 11 additions & 4 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,39 @@
"isRoot": true,
"tools": {
"powershell": {
"version": "7.5.1",
"version": "7.5.4",
"commands": [
"pwsh"
],
"rollForward": false
},
"dotnet-coverage": {
"version": "17.14.2",
"version": "18.3.1",
"commands": [
"dotnet-coverage"
],
"rollForward": false
},
"nbgv": {
"version": "3.7.115",
"version": "3.9.50",
"commands": [
"nbgv"
],
"rollForward": false
},
"docfx": {
"version": "2.78.3",
"version": "2.78.4",
"commands": [
"docfx"
],
"rollForward": false
},
"nerdbank.dotnetrepotools": {
"version": "1.0.92",
"commands": [
"repo"
],
"rollForward": false
}
}
}
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Refer to https://hub.docker.com/_/microsoft-dotnet-sdk for available versions
FROM mcr.microsoft.com/dotnet/sdk:9.0.301-noble@sha256:4f50505b5344e9d8a76805d71bb4ba76da6b01656e17a66a8ce1e4c4dfaaec12
FROM mcr.microsoft.com/dotnet/sdk:10.0.101@sha256:d1823fecac3689a2eb959e02ee3bfe1c2142392808240039097ad70644566190

# Installing mono makes `dotnet test` work without errors even for net472.
# But installing it takes a long time, so it's excluded by default.
Expand Down
14 changes: 7 additions & 7 deletions .github/actions/publish-artifacts/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,46 +14,46 @@ runs:

- name: 📢 Upload project.assets.json files
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: projectAssetsJson-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/projectAssetsJson
continue-on-error: true
- name: 📢 Upload variables
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: variables-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/Variables
continue-on-error: true
- name: 📢 Upload build_logs
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: build_logs-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/build_logs
continue-on-error: true
- name: 📢 Upload testResults
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: testResults-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/testResults
continue-on-error: true
- name: 📢 Upload coverageResults
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: coverageResults-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/coverageResults
continue-on-error: true
- name: 📢 Upload symbols
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: symbols-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/symbols
continue-on-error: true
- name: 📢 Upload deployables
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: deployables-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/deployables
Expand Down
23 changes: 23 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copilot instructions for this repository

## High level guidance

* Review the `CONTRIBUTING.md` file for instructions to build and test the software.
* Set the `NBGV_GitEngine` environment variable to `Disabled` before running any `dotnet` or `msbuild` commands.

## Software Design

* Design APIs to be highly testable, and all functionality should be tested.
* Avoid introducing binary breaking changes in public APIs of projects under `src` unless their project files have `IsPackable` set to `false`.

## Testing

* There should generally be one test project (under the `test` directory) per shipping project (under the `src` directory). Test projects are named after the project being tested with a `.Test` suffix.
* Tests should use the Xunit testing framework.
* Some tests are known to be unstable. When running tests, you should skip the unstable ones by running `dotnet test --filter "TestCategory!=FailsInCloudTest"`.

## Coding style

* Honor StyleCop rules and fix any reported build warnings *after* getting tests to pass.
* In C# files, use namespace *statements* instead of namespace *blocks* for all new files.
* Add API doc comments to all new public and internal members.
6 changes: 5 additions & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:best-practices"],
"extends": ["config:best-practices","helpers:pinGitHubActionDigestsToSemver"],
"labels": ["dependencies"],
"packageRules": [
{
Expand All @@ -11,6 +11,10 @@
"matchPackageNames": ["xunit*"],
"groupName": "xunit"
},
{
"matchPackageNames": ["Microsoft.Testing.Extensions.*"],
"groupName": "Microsoft Testing Platform"
},
{
"matchDatasources": ["dotnet-version", "docker"],
"matchDepNames": ["dotnet-sdk", "mcr.microsoft.com/dotnet/sdk"],
Expand Down
21 changes: 11 additions & 10 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ on:
env:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
BUILDCONFIGURATION: Release
# codecov_token: 4dc9e7e2-6b01-4932-a180-847b52b43d35 # Get a new one from https://codecov.io/
NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages/

jobs:
Expand All @@ -24,12 +23,12 @@ jobs:
fail-fast: false
matrix:
os:
- ubuntu-22.04
# - macos-14
# - windows-2022
- ubuntu-24.04
# - macOS-15
# - windows-2025

steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand Down Expand Up @@ -64,18 +63,20 @@ jobs:
uses: ./.github/actions/publish-artifacts
if: cancelled() == false
- name: 📢 Publish code coverage results to codecov.io
run: ./tools/publish-CodeCov.ps1 -CodeCovToken "${{ env.codecov_token }}" -PathToCodeCoverage "${{ runner.temp }}/_artifacts/coverageResults" -Name "${{ runner.os }} Coverage Results" -Flags "${{ runner.os }}"
run: |
if ('${{ secrets.CODECOV_TOKEN }}') {
./tools/publish-CodeCov.ps1 -CodeCovToken '${{ secrets.CODECOV_TOKEN }}' -PathToCodeCoverage "${{ runner.temp }}/_artifacts/coverageResults" -Name "${{ runner.os }} Coverage Results" -Flags "${{ runner.os }}"
}
shell: pwsh
timeout-minutes: 3
continue-on-error: true
if: env.codecov_token != ''

docs:
name: 📃 Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: 🔗 Markup Link Checker (mlc)
uses: becheran/mlc@88c9db09b8dabab813a2edd13f955b36aa73657a # v0.22.0
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/* -p docfx
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://www.npmjs.com/package/*,https://get.dot.net/
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand Down
19 changes: 9 additions & 10 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,6 @@ on:
branches:
- main

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
actions: read
pages: write
id-token: write
contents: read

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
Expand All @@ -20,12 +13,18 @@ concurrency:

jobs:
publish-docs:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
actions: read
pages: write
id-token: write
contents: read
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand All @@ -35,10 +34,10 @@ jobs:
name: 📚 Generate documentation

- name: Upload artifact
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
with:
path: docfx/_site

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.

Expand Down
31 changes: 14 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,14 @@ on:

run-name: ${{ github.ref_name }}

permissions:
actions: read
contents: write

jobs:
release:
runs-on: ubuntu-24.04
permissions:
actions: read # Required to download artifacts
contents: write # Upload artifacts to Release
id-token: write # Required for NuGet CLI Login
steps:
- name: ⚙️ Initialization
shell: pwsh
run: |
if ('${{ secrets.NUGET_API_KEY }}') {
Write-Host "NUGET_API_KEY secret detected. NuGet packages will be pushed."
echo "NUGET_API_KEY_DEFINED=true" >> $env:GITHUB_ENV
}

- name: 🔎 Search for build of ${{ github.ref }}
shell: pwsh
id: findrunid
Expand Down Expand Up @@ -65,13 +57,22 @@ jobs:
Echo "runid=$runid" >> $env:GITHUB_OUTPUT

- name: 🔻 Download deployables artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: deployables-Linux
path: ${{ runner.temp }}/deployables
run-id: ${{ steps.findrunid.outputs.runid }}
github-token: ${{ github.token }}

- name: 🪪 Authorize NuGet package push
uses: NuGet/login@d22cc5f58ff5b88bf9bd452535b4335137e24544 # v1.1.0
id: nuget-login
with:
user: ${{ secrets.NUGET_USER }}

- name: 🚀 Push NuGet packages
run: dotnet nuget push ${{ runner.temp }}/deployables/*.nupkg --source https://api.nuget.org/v3/index.json -k '${{ steps.nuget-login.outputs.NUGET_API_KEY }}'

- name: 💽 Upload artifacts to release
shell: pwsh
if: ${{ github.event_name == 'release' && github.event.release.assets_url != '' }}
Expand All @@ -82,7 +83,3 @@ jobs:
Write-Host "Uploading $($_.Name) to release..."
gh release -R ${{ github.repository }} upload "${{ github.ref_name }}" $_.FullName
}

- name: 🚀 Push NuGet packages
run: dotnet nuget push ${{ runner.temp }}/deployables/*.nupkg --source https://api.nuget.org/v3/index.json -k '${{ secrets.NUGET_API_KEY }}'
if: ${{ env.NUGET_API_KEY_DEFINED == 'true' }}
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ This repository can be built on Windows, Linux, and OSX.

Building, testing, and packing this repository can be done by using the standard dotnet CLI commands (e.g. `dotnet build`, `dotnet test`, `dotnet pack`, etc.).

[pwsh]: https://docs.microsoft.com/powershell/scripting/install/installing-powershell?view=powershell-6
[pwsh]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell

## Releases

Expand All @@ -53,9 +53,9 @@ Push the tag.
When your repo is hosted by GitHub and you are using GitHub Actions, you should create a GitHub Release using the standard GitHub UI.
Having previously used `nbgv tag` and pushing the tag will help you identify the precise commit and name to use for this release.

After publishing the release, the `.github\workflows\release.yml` workflow will be automatically triggered, which will:
After publishing the release, the `.github/workflows/release.yml` workflow will be automatically triggered, which will:

1. Find the most recent `.github\workflows\build.yml` GitHub workflow run of the tagged release.
1. Find the most recent `.github/workflows/build.yml` GitHub workflow run of the tagged release.
1. Upload the `deployables` artifact from that workflow run to your GitHub Release.
1. If you have `NUGET_API_KEY` defined as a secret variable for your repo or org, any nuget packages in the `deployables` artifact will be pushed to nuget.org.

Expand All @@ -66,7 +66,7 @@ Trigger the pipeline by adding the `auto-release` tag on a run of your main `azu

## Tutorial and API documentation

API and hand-written docs are found under the `docfx/` directory. and are built by [docfx](https://dotnet.github.io/docfx/).
API and hand-written docs are found under the `docfx/` directory and are built by [docfx](https://dotnet.github.io/docfx/).

You can make changes and host the site locally to preview them by switching to that directory and running the `dotnet docfx --serve` command.
After making a change, you can rebuild the docs site while the localhost server is running by running `dotnet docfx` again from a separate terminal.
Expand All @@ -88,11 +88,11 @@ If Renovate is not creating pull requests when you expect it to, check that the
### Maintaining your repo based on this template

The best way to keep your repo in sync with Library.Template's evolving features and best practices is to periodically merge the template into your repo:
`

```ps1
git fetch
git checkout origin/main
.\tools\MergeFrom-Template.ps1
./tools/MergeFrom-Template.ps1
# resolve any conflicts, then commit the merge commit.
git push origin -u HEAD
```
7 changes: 5 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@
<AnalysisLevel>preview</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
<RestoreEnablePackagePruning>true</RestoreEnablePackagePruning>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>

<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/apicompat/package-validation/overview -->
<EnablePackageValidation>true</EnablePackageValidation>

<!-- https://github.com/dotnet/msbuild/blob/main/documentation/ProjectReference-Protocol.md#setplatform-negotiation -->
<EnableDynamicPlatformResolution>true</EnableDynamicPlatformResolution>

<!-- Opt in till https://github.com/NuGet/Home/issues/9803 makes this the default. -->
<!-- Opt back out until an SDK with the fix for https://github.com/NuGet/Home/issues/12177 is generally available. -->
<RestoreUseStaticGraphEvaluation>false</RestoreUseStaticGraphEvaluation>
<RestoreUseStaticGraphEvaluation>true</RestoreUseStaticGraphEvaluation>

<!-- This entire repo has just one version.json file, so compute the version once and share with all projects in a large build. -->
<GitVersionBaseDirectory>$(MSBuildThisFileDirectory)</GitVersionBaseDirectory>
Expand Down
Loading
Loading