Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
7f14687
Bump docfx from 2.77.0 to 2.78.0 (#311)
dependabot[bot] Nov 18, 2024
64483bf
Fix libtemplate update workflow
AArnott Nov 18, 2024
20e285c
Avoid `dotnet format` hang
AArnott Nov 19, 2024
6775c31
Update devcontainer for latest SDK and extension
AArnott Nov 19, 2024
5bd86bb
Get dependabot to help us keep the .NET SDK current
AArnott Nov 20, 2024
325831e
Bump docfx from 2.78.0 to 2.78.1 (#313)
dependabot[bot] Nov 20, 2024
2d80693
Bump Microsoft.NET.Test.Sdk from 17.11.1 to 17.12.0 (#312)
dependabot[bot] Nov 20, 2024
49241ec
Use `-LiteralPath` instead of `-Path` in ps1 scripts
AArnott Nov 23, 2024
b20e0d9
Merge pull request #315 from AArnott/fix314
AArnott Nov 23, 2024
110da23
Replace `Nullable` with `PolySharp` as a dependency
AArnott Nov 25, 2024
f8235e4
Add docfx verification to build
AArnott Nov 27, 2024
45279a7
Fix nb.gv failure during docfx build
AArnott Nov 27, 2024
3a32d09
Remove double word from boilerplate docfx text
AArnott Nov 30, 2024
feb1a46
Bump docfx to 2.78.2
AArnott Dec 2, 2024
130ad67
Bump dotnet-coverage to 17.13.1
AArnott Dec 9, 2024
8a0d319
Move artifact publishing into a composite action
AArnott Dec 9, 2024
904ff78
Make the CI workflow dispatchable
AArnott Dec 9, 2024
9bbf8a3
Fix docfx build on private repos
AArnott Dec 9, 2024
4fa9e72
Fix code coverage merge on GitHub Actions
AArnott Dec 9, 2024
89afbfc
Add release workflow
AArnott Dec 9, 2024
03ec9e0
Merge pull request #318 from AArnott/githubActionsDevelopment
AArnott Dec 9, 2024
1a06053
Document release process
AArnott Dec 9, 2024
7bb9a6c
Publish test results when they fail on github workflows
AArnott Dec 11, 2024
f6204f3
Fix push to nuget.org in github release workflow
AArnott Dec 13, 2024
0a42cd9
Bump nbgv and Nerdbank.GitVersioning to 3.7.112
AArnott Dec 16, 2024
d8df5c8
Activate GitHub Actions test reporting
AArnott Dec 18, 2024
01eeb1a
Merge pull request #319 from AArnott/betterTestingLibTemplate
AArnott Dec 18, 2024
d2f4c5e
Revert "Merge pull request #319 from AArnott/betterTestingLibTemplate"
AArnott Dec 18, 2024
b1fa3bc
Merge pull request #321 from AArnott/betterTestingLibTemplate
AArnott Dec 18, 2024
7b18fd0
Resolve schema validation error in VS Code for docfx yml files
AArnott Dec 20, 2024
ad4ff0f
Bump xunit.runner.visualstudio to 3.0.0
AArnott Dec 20, 2024
2e9751f
Bump .NET SDK to 9.0.101
AArnott Dec 20, 2024
3459e45
Merge pull request #322 from AArnott/depUpdates
AArnott Dec 20, 2024
0c33c69
Organize Directory.Packages.props to reduce merge conflicts going for…
AArnott Dec 20, 2024
99ee1fc
Bump to Xunit v3
AArnott Dec 23, 2024
867012d
Merge pull request #323 from AArnott/xunitv3
AArnott Dec 23, 2024
94eba4a
Build servicing branches
AArnott Dec 23, 2024
275a44b
Do not publish artifacts on cancelled GitHub workflows
AArnott Dec 23, 2024
aa130d0
Merge pull request #324 from AArnott/publishArtifactsOnCancel
AArnott Dec 23, 2024
8870497
Move scripts that apply to github workflows from azp to tools
AArnott Dec 24, 2024
bb60632
Remove unused nuget.config file
AArnott Dec 24, 2024
abbd6b0
Move artifacts and variables scripts to `tools`
AArnott Dec 24, 2024
709bc0e
Merge pull request #325 from AArnott/azpPurify
AArnott Dec 24, 2024
fe7350f
Move variable definition script
AArnott Dec 24, 2024
e833efe
Merge pull request #326 from AArnott/azpPurify
AArnott Dec 24, 2024
bd10eaa
Group dependabot update PRs
AArnott Dec 26, 2024
05072c1
Switch from Dependabot to Renovate
AArnott Dec 26, 2024
72caf2d
Update mcr.microsoft.com/dotnet/sdk Docker tag to v9.0.101
renovate[bot] Dec 26, 2024
b353d1f
Update dependency ubuntu to v24
renovate[bot] Dec 26, 2024
92e7a46
Merge pull request #328 from AArnott/renovate/ubuntu-24.x
AArnott Dec 26, 2024
13397fd
Merge pull request #327 from AArnott/renovate/dockerfile-and-global.j…
AArnott Dec 26, 2024
147f846
Drop renovate PR hourly limit back to default
AArnott Dec 27, 2024
ddc4c2d
Use JSON5 for renovate configuration
AArnott Dec 28, 2024
7e3ea78
Update devcontainer schema
AArnott Dec 28, 2024
6ad0c94
Rename renovate config back to .json
AArnott Dec 30, 2024
fadd4eb
Fix test logs collection
AArnott Dec 31, 2024
daddccc
Merge pull request #330 from AArnott/fixTestResults
AArnott Dec 31, 2024
16f72e3
Take care to use proper slashes per OS for testing
AArnott Jan 1, 2025
392ed3f
Merge pull request #331 from AArnott/fixTestResults
AArnott Jan 1, 2025
656c5ff
Match test assemblies that are built as exe's
AArnott Jan 5, 2025
5f9a344
Ensure Expand-Template uses UTF-8 when replacing placeholders.
richardstanton Jun 8, 2024
b3fc0f3
Simplify certain ps1 script paths
AArnott Jan 7, 2025
871638a
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jan 6, 2025
1cc471c
Merge remote-tracking branch 'origin/main' into merge/main_to_microbuild
AArnott Jan 7, 2025
6654a67
Merge pull request #335 from AArnott/merge/main_to_microbuild
AArnott Jan 7, 2025
048010c
Update xunit (#336)
renovate[bot] Jan 10, 2025
6ac5aae
Fix InsertJsonValues script (#337)
matteo-prosperi Jan 10, 2025
b47196d
Update nbgv and nerdbank.gitversioning updates to 3.7.115 (#338)
renovate[bot] Jan 11, 2025
56aa0b3
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jan 11, 2025
48ff6ea
Bump MicroBuildInsertVsPayload to v5
AArnott Jan 13, 2025
8819ea6
Replace github build workflow with just docfx validation
AArnott Jan 14, 2025
84258fc
Adapt to breaking change in MicroBuildInsertVsPayload@5
AArnott Jan 14, 2025
5a6c72d
Bring back Dependabot
AArnott Jan 14, 2025
862f998
Fix Install-NuGetPackage.ps1 script
AArnott Jan 14, 2025
d158387
Create a separate unofficial.yml pipeline (#334)
matteo-prosperi Jan 14, 2025
2545e30
Add back signcheck exclusion for unofficial builds
matteo-prosperi Jan 14, 2025
6883bf7
Merge pull request #339 from matteo-prosperi/patch-3
AArnott Jan 15, 2025
8c45970
Update Dockerfile and global.json updates to v9.0.102 (#340)
renovate[bot] Jan 15, 2025
25d6df9
Migrate xunit settings from app.config to xunit.runner.json
AArnott Jan 15, 2025
cbf8720
Merge branch 'xunitConfigMigration'
AArnott Jan 15, 2025
663b4c3
Merge branch 'main' into microbuild
AArnott Jan 15, 2025
b9f8bc9
Fix typo
AArnott Jan 15, 2025
df52435
Add GitS sponsorship badge
AArnott Jan 18, 2025
02bf9ee
Revert "Add GitS sponsorship badge"
AArnott Jan 20, 2025
aa8e870
Update dependency powershell to 7.5.0 (#341)
renovate[bot] Jan 23, 2025
5fa9788
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jan 23, 2025
3730643
Bump all microbuild packages at once
AArnott Jan 24, 2025
66fe1ca
Add markup link checker to GitHub workflow
AArnott Jan 27, 2025
b3b3da2
Fix stale link in CONTRIBUTING.md
AArnott Jan 27, 2025
e562b36
Merge pull request #342 from AArnott/mlc
AArnott Jan 27, 2025
c58551b
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jan 27, 2025
1da3863
Skip aka.ms links that don't validate
AArnott Jan 27, 2025
df8d6cd
Merge pull request #343 from AArnott/mbdocs
AArnott Jan 27, 2025
9409f44
Bump nuget.exe build tool to 6.12.2
AArnott Jan 27, 2025
4868200
Merge branch 'main' into microbuild
AArnott Jan 27, 2025
e25313b
Update becheran/mlc action to v0.19.1
renovate[bot] Feb 4, 2025
83228fe
Suppress an expected doc warning
AArnott Feb 4, 2025
015fcf6
Merge pull request #344 from AArnott/renovate/becheran-mlc-0.x
AArnott Feb 4, 2025
3114358
Remove dependabot.yml
AArnott Feb 4, 2025
3856c54
Update becheran/mlc action to v0.19.2 (#345)
renovate[bot] Feb 4, 2025
399d3d5
Stick with .NET 8 packages
AArnott Feb 5, 2025
56ac670
Update microbuild to 2.0.181
AArnott Feb 5, 2025
37e48d0
Update dependency ubuntu to v24
AArnott Feb 5, 2025
28c5968
Avoid daily updates of VS packages
AArnott Feb 5, 2025
b4a369c
Group VS SDK package updates
AArnott Feb 5, 2025
b1e2782
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Feb 5, 2025
674e010
Merge branch 'renovateFTW' into microbuild
AArnott Feb 5, 2025
2d06ba4
Update becheran/mlc action to v0.19.2
AArnott Feb 5, 2025
429e76f
Fix mlc suppressions for SECURITY.md
AArnott Feb 5, 2025
8eb0937
Renovate should not update to versions from non-release branches
AArnott Feb 6, 2025
41d1b78
Merge branch 'main' into microbuild
AArnott Feb 6, 2025
9db1062
Drop group name in renovate
AArnott Feb 6, 2025
907d58c
Merge branch 'main' into microbuild
AArnott Feb 6, 2025
574886f
Update xunit (#346)
renovate[bot] Feb 7, 2025
de76cb2
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Feb 7, 2025
a71c97c
Update becheran/mlc action to v0.21.0 (#347)
renovate[bot] Feb 10, 2025
a8d08d4
Update dependency Microsoft.NET.Test.Sdk to 17.13.0 (#348)
renovate[bot] Feb 10, 2025
7ad18af
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Feb 10, 2025
62c8978
Bump MicroBuildVersion to 2.0.187
AArnott Feb 10, 2025
5724fef
Update Dockerfile and global.json updates to v9.0.200
renovate[bot] Feb 12, 2025
c24a8f0
Update dependency dotnet-coverage to 17.14.1
renovate[bot] Feb 19, 2025
0527720
Update dependency docfx to 2.78.3 (#351)
renovate[bot] Feb 20, 2025
e98ff17
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Feb 21, 2025
077bfc3
Do not verify signed binaries in LocBin artifact
AArnott Feb 26, 2025
81ff341
Add placeholder option for vs-validation to skip optimization
AArnott Feb 26, 2025
0fb1dde
Update dependency dotnet-coverage to 17.14.2 (#352)
renovate[bot] Feb 27, 2025
161bac9
Fix GitHub release workflow in dispatched runs
AArnott Mar 3, 2025
17a708e
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Mar 3, 2025
1e00ddc
Drop semanticCommits setting from renovate.json
AArnott Mar 4, 2025
67128e5
Merge branch 'main' into microbuild
AArnott Mar 4, 2025
1cc3b97
Switch to renovate rules from Microsoft presets
AArnott Mar 4, 2025
164ff31
Do not fail on missing LCL files in official builds
AArnott Mar 8, 2025
46e768b
Revert "Avoid `dotnet format` hang"
AArnott Mar 10, 2025
6ed2f36
Consolidate SDL tasks for insertion job
AArnott Mar 10, 2025
65f8440
Disable redundant 1ES SBOM task
AArnott Mar 10, 2025
039ac0b
Put publishing code coverage under a switch
AArnott Mar 10, 2025
845a785
Merge pull request #354 from AArnott/optimizations
AArnott Mar 10, 2025
e1e35f1
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Mar 10, 2025
dcc2963
Drop github release workflow
AArnott Mar 12, 2025
e5d6527
Merge pull request #355 from AArnott/renovate/dockerfile-and-global.j…
renovate[bot] Mar 12, 2025
6307413
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Mar 14, 2025
24a6e2b
Build renovate settings on the best-practices preset (#357)
AArnott Mar 19, 2025
408618f
Update Dockerfile and global.json updates to v9.0.202 (#356)
renovate[bot] Mar 19, 2025
8d800dc
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Mar 19, 2025
b8573cf
Pin dependencies (#358)
renovate[bot] Mar 19, 2025
4569224
Pin mcr.microsoft.com/dotnet/sdk Docker tag to 332e036 (#359)
renovate[bot] Mar 19, 2025
c90816a
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Mar 19, 2025
b9a14cd
Merge remote-tracking branch 'libtemplate/microbuild'
ttstanley Mar 24, 2025
836f33e
fixing build issues with merge
ttstanley Mar 24, 2025
a0c0e2a
fix file path
ttstanley Mar 24, 2025
bb75b2e
another fix to pathing
ttstanley Mar 24, 2025
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
10 changes: 5 additions & 5 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,32 @@
"isRoot": true,
"tools": {
"powershell": {
"version": "7.4.6",
"version": "7.5.0",
"commands": [
"pwsh"
],
"rollForward": false
},
"dotnet-coverage": {
"version": "17.12.6",
"version": "17.14.2",
"commands": [
"dotnet-coverage"
],
"rollForward": false
},
"nbgv": {
"version": "3.6.146",
"version": "3.7.115",
"commands": [
"nbgv"
],
"rollForward": false
},
"docfx": {
"version": "2.77.0",
"version": "2.78.3",
"commands": [
"docfx"
],
"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:8.0.402-jammy
FROM mcr.microsoft.com/dotnet/sdk:9.0.202-noble@sha256:332e0362dd210a10348d436a5fb7f87aeec28c2c53ac2c3c2659e57c22294d0e

# 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
35 changes: 20 additions & 15 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
{
"name": "Dev space",
"dockerFile": "Dockerfile",
"settings": {
"terminal.integrated.shell.linux": "/usr/bin/pwsh"
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/usr/bin/pwsh"
},
"extensions": [
"ms-azure-devops.azure-pipelines",
"ms-dotnettools.csharp",
"k--kato.docomment",
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
"pflannery.vscode-versionlens",
"davidanson.vscode-markdownlint",
"dotjoshjohnson.xml",
"ms-vscode-remote.remote-containers",
"ms-azuretools.vscode-docker",
"tintoy.msbuild-project-tools"
]
}
},
"postCreateCommand": "./init.ps1 -InstallLocality machine",
"extensions": [
"ms-azure-devops.azure-pipelines",
"ms-dotnettools.csharp",
"k--kato.docomment",
"editorconfig.editorconfig",
"pflannery.vscode-versionlens",
"davidanson.vscode-markdownlint",
"dotjoshjohnson.xml",
"ms-vscode-remote.remote-containers",
"ms-azuretools.vscode-docker",
"ms-vscode.powershell"
]
"postCreateCommand": "./init.ps1 -InstallLocality machine"
}
2 changes: 2 additions & 0 deletions .github/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[renovate.json*]
indent_style = tab
60 changes: 60 additions & 0 deletions .github/actions/publish-artifacts/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Publish artifacts
description: Publish artifacts

runs:
using: composite
steps:
- name: 📥 Collect artifacts
run: tools/artifacts/_stage_all.ps1
shell: pwsh
if: always()

# TODO: replace this hard-coded list with a loop that utilizes the NPM package at
# https://github.com/actions/toolkit/tree/main/packages/artifact (or similar) to push the artifacts.

- name: 📢 Upload project.assets.json files
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: projectAssetsJson-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/projectAssetsJson
continue-on-error: true
- name: 📢 Upload variables
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
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
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
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
with:
name: coverageResults-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/coverageResults
continue-on-error: true
- name: 📢 Upload symbols
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: symbols-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/symbols
continue-on-error: true
- name: 📢 Upload deployables
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: deployables-${{ runner.os }}
path: ${{ runner.temp }}/_artifacts/deployables
if: always()
9 changes: 0 additions & 9 deletions .github/dependabot.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>microsoft/vs-renovate-presets:microbuild",
"github>microsoft/vs-renovate-presets:vs_main_dependencies"
],
"packageRules": []
}
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ jobs:
}
shell: pwsh
- name: ⚙️ Set pipeline variables based on source
run: azure-pipelines/variables/_pipelines.ps1
run: tools/variables/_define.ps1
shell: pwsh
- name: 🛠 build
run: dotnet build src -t:build,pack --no-restore -c ${{ env.BUILDCONFIGURATION }} /bl:"${{ runner.temp }}/_artifacts/build_logs/build.binlog"
- name: 🧪 test
run: azure-pipelines/dotnet-test-cloud.ps1 -Configuration ${{ env.BUILDCONFIGURATION }} -Agent ${{ runner.os }}
run: tools/dotnet-test-cloud.ps1 -Configuration ${{ env.BUILDCONFIGURATION }} -Agent ${{ runner.os }}
shell: pwsh
- name: 💅🏻 Verify formatted code
run: dotnet format --verify-no-changes --no-restore
shell: pwsh
if: runner.os == 'Linux'
- name: ⚙ Update pipeline variables based on build outputs
run: azure-pipelines/variables/_pipelines.ps1
run: tools/variables/_define.ps1
shell: pwsh
- name: 📥 Collect artifacts
run: azure-pipelines/artifacts/_stage_all.ps1
run: tools/artifacts/_stage_all.ps1
shell: pwsh
if: always()
- name: 📢 Upload project.assets.json files
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ 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.
Expand All @@ -24,18 +25,20 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
run: ./init.ps1 -UpgradePrerequisites

- run: dotnet docfx docfx/docfx.json
name: 📚 Generate documentation

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

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
30 changes: 30 additions & 0 deletions .github/workflows/docs_validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 📃 Docfx Validate

on:
pull_request:
workflow_dispatch:
push:
branches:
- main
- microbuild

jobs:
build:
name: 📚 Doc validation
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: 🔗 Markup Link Checker (mlc)
uses: becheran/mlc@v0.21.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 -i https://aka.ms/onboardsupport,https://aka.ms/spot,https://msrc.microsoft.com/*,https://www.microsoft.com/msrc*,https://microsoft.com/msrc*
- name: ⚙ Install prerequisites
run: |
./init.ps1 -UpgradePrerequisites
dotnet --info
shell: pwsh
- name: 📚 Verify docfx build
run: dotnet docfx docfx/docfx.json --warningsAsErrors --disableGitFeatures
if: runner.os == 'Linux'
12 changes: 6 additions & 6 deletions .github/workflows/libtemplate-update.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Library.Template update
name: Library.Template update

# PREREQUISITE: This workflow requires the repo to be configured to allow workflows to create pull requests.
# Visit https://github.com/USER/REPO/settings/actions
Expand All @@ -17,15 +17,15 @@ jobs:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.

- name: merge
id: merge
shell: pwsh
run: |
$LibTemplateBranch = & ./azure-pipelines/Get-LibTemplateBasis.ps1 -ErrorIfNotRelated
$LibTemplateBranch = & ./tools/Get-LibTemplateBasis.ps1 -ErrorIfNotRelated
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
Expand All @@ -45,7 +45,7 @@ jobs:

# Pushing commits that add or change files under .github/workflows will cause our workflow to fail.
# But it usually isn't necessary because the target branch already has (or doesn't have) these changes.
# So if the merged doesn't bring in any changes to these files, try the merge locally and push that
# So if the merge doesn't bring in any changes to these files, try the merge locally and push that
# to keep github happy.
if ((git rev-list FETCH_HEAD ^HEAD --count -- .github/workflows) -eq 0) {
# Indeed there are no changes in that area. So merge locally to try to appease GitHub.
Expand Down Expand Up @@ -77,7 +77,7 @@ jobs:
$prTitle = "Merge latest Library.Template"
$prBody = "This merges the latest features and fixes from [Library.Template's branch](https://github.com/AArnott/Library.Template/tree/).

⚠️ Do **not** squash this pull request when completing it. You must *merge* it."
⚠️ Do **not** squash this pull request when completing it. You must *merge* it.

<details>
<summary>Merge conflicts?</summary>
Expand All @@ -91,7 +91,7 @@ jobs:
git commit
git push
```
</details>
</details>"

gh pr create -H auto/libtemplateUpdate -b $prBody -t $prTitle
env:
Expand Down
73 changes: 70 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,73 @@ https://cla.microsoft.com.

## Pull requests

When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
## Prerequisites

All dependencies can be installed by running the `init.ps1` script at the root of the repository
using Windows PowerShell or [PowerShell Core][pwsh] (on any OS).
Some dependencies installed by `init.ps1` may only be discoverable from the same command line environment the init script was run from due to environment variables, so be sure to launch Visual Studio or build the repo from that same environment.
Alternatively, run `init.ps1 -InstallLocality Machine` (which may require elevation) in order to install dependencies at machine-wide locations so Visual Studio and builds work everywhere.

The only prerequisite for building, testing, and deploying from this repository
is the [.NET SDK](https://get.dot.net/).
You should install the version specified in `global.json` or a later version within
the same major.minor.Bxx "hundreds" band.
For example if 2.2.300 is specified, you may install 2.2.300, 2.2.301, or 2.2.310
while the 2.2.400 version would not be considered compatible by .NET SDK.
See [.NET Core Versioning](https://learn.microsoft.com/dotnet/core/versions/) for more information.

## Package restore

The easiest way to restore packages may be to run `init.ps1` which automatically authenticates
to the feeds that packages for this repo come from, if any.
`dotnet restore` or `nuget restore` also work but may require extra steps to authenticate to any applicable feeds.

## Building

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

## Releases

Use `nbgv tag` to create a tag for a particular commit that you mean to release.
[Learn more about `nbgv` and its `tag` and `prepare-release` commands](https://dotnet.github.io/Nerdbank.GitVersioning/docs/nbgv-cli.html).

Push the tag.

### GitHub Actions

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:

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.

### Azure Pipelines

When your repo builds with Azure Pipelines, use the `azure-pipelines/release.yml` pipeline.
Trigger the pipeline by adding the `auto-release` tag on a run of your main `azure-pipelines.yml` pipeline.

## 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/).

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.

The `.github/workflows/docs.yml` GitHub Actions workflow publishes the content of these docs to github.io if the workflow itself and [GitHub Pages is enabled for your repository](https://docs.github.com/en/pages/quickstart).

## Updating dependencies

This repo uses Renovate to keep dependencies current.
Configuration is in the `.github/renovate.json` file.
[Learn more about configuring Renovate](https://docs.renovatebot.com/configuration-options/).

When changing the renovate.json file, follow [these validation steps](https://docs.renovatebot.com/config-validation/).

If Renovate is not creating pull requests when you expect it to, check that the [Renovate GitHub App](https://github.com/apps/renovate) is configured for your account or repo.
Loading
Loading