ci: add copilot-setup-steps workflow for coding-agent parity#242
Merged
Conversation
Mirror the sibling templates (go-template, platform-template) by provisioning the .NET toolchain the Copilot coding agent needs before it starts. Tracks the SDK floor via global.json so the agent toolchain never drifts (the .NET parity to go-template's go-version-file: go.mod), and self-validates on changes to the file. Part of the template-suite parity theme of #218. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.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.
What
Adds
.github/workflows/copilot-setup-steps.ymlso the GitHub Copilot coding agent gets a working .NET toolchain provisioned before it starts — bringingdotnet-templateto parity with the sibling templates that already ship this file (go-template,platform-template).Why
Template-suite parity is the lone open theme of the roadmap epic #218 (themes 1 & 2 — onboarding script + toolchain-floor policy — are already delivered on
main). A scan of the shared workflow surface across the four templates foundcopilot-setup-steps.ymlpresent in go-template and platform-template but absent fromdotnet-template(andgitops-tenant-template). Templates are adopter-facing infrastructure: anyone who forksdotnet-templateand uses the Copilot coding agent currently gets an un-provisioned environment, whereas a go-template/platform-template fork does not.Design
platform-template's structure — top-levelpermissions: {}, job-scopedcontents: read,step-security/harden-runner(egress audit),actions/checkoutwithpersist-credentials: false.global.json:actions/setup-dotnetwithglobal-json-file: global.jsonso the agent toolchain tracks the repo's single-source SDK floor and never drifts — the .NET parity to go-template'sgo-version-file: go.mod.push/pull_requestto its own path (plusworkflow_dispatch), so this PR's own run exercises the setup end-to-end (dotnet restore Example.slnx).reusable-workflows(harden-runnerv2.19.4,checkoutv6.0.3,setup-dotnetv5.3.0).Validation
actionlint— clean (exit 0, no findings).dotnet restore Example.slnxlocally on the repo'sglobal.jsonfloor (SDK 10.0.300,latestFeature) — restores both projects cleanly.copilot-setup-stepscheck validates it on a GitHub runner.Note for the maintainer
You use Claude Code, not the Copilot coding agent — but this file is adopter-facing (it benefits people who fork the template), which is presumably why it already lives in two of the four templates. If you're instead phasing
copilot-setup-stepsout of the suite, the cleaner direction would be to remove it from go-template/platform-template too — happy to do that instead; just close this and say so.Part of #218 (template-suite parity).