Skip to content

ci: add copilot-setup-steps workflow for coding-agent parity#242

Merged
devantler merged 1 commit into
mainfrom
claude/copilot-setup-steps
Jun 23, 2026
Merged

ci: add copilot-setup-steps workflow for coding-agent parity#242
devantler merged 1 commit into
mainfrom
claude/copilot-setup-steps

Conversation

@devantler

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Assistant

What

Adds .github/workflows/copilot-setup-steps.yml so the GitHub Copilot coding agent gets a working .NET toolchain provisioned before it starts — bringing dotnet-template to 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 found copilot-setup-steps.yml present in go-template and platform-template but absent from dotnet-template (and gitops-tenant-template). Templates are adopter-facing infrastructure: anyone who forks dotnet-template and uses the Copilot coding agent currently gets an un-provisioned environment, whereas a go-template/platform-template fork does not.

Design

  • Hardened pattern (reconcile toward the best sibling): mirrors platform-template's structure — top-level permissions: {}, job-scoped contents: read, step-security/harden-runner (egress audit), actions/checkout with persist-credentials: false.
  • SDK from global.json: actions/setup-dotnet with global-json-file: global.json so the agent toolchain tracks the repo's single-source SDK floor and never drifts — the .NET parity to go-template's go-version-file: go.mod.
  • Self-validating: the workflow triggers on push/pull_request to its own path (plus workflow_dispatch), so this PR's own run exercises the setup end-to-end (dotnet restore Example.slnx).
  • All action SHAs pinned to the org-canonical versions used in reusable-workflows (harden-runner v2.19.4, checkout v6.0.3, setup-dotnet v5.3.0).

Validation

  • actionlint — clean (exit 0, no findings).
  • dotnet restore Example.slnx locally on the repo's global.json floor (SDK 10.0.300, latestFeature) — restores both projects cleanly.
  • The PR's copilot-setup-steps check 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-steps out 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).

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>
@devantler devantler marked this pull request as ready for review June 23, 2026 22:00
@devantler devantler merged commit a32d1fa into main Jun 23, 2026
11 checks passed
@devantler devantler deleted the claude/copilot-setup-steps branch June 23, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant