Optimize CI: Linux-only PR validation, separate build and release workflows#32
Conversation
…elease with full test suite Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Chris-Wolfgang
left a comment
There was a problem hiding this comment.
@copilot rename the release.yaml file to build.yaml and have it fire only when a tag that starts with "build-" is created on the main branch. create a new release.yaml file that fires when a tag that starts with v is created on the main branch. It should build the repo including the .net framework and core version and deploy to nuget server
…t deployment Co-authored-by: Chris-Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR restructures the CI workflows to make PR validation Linux-only (with coverage gating) while moving the full multi-platform test matrix and NuGet publishing into a richer, staged release pipeline.
Changes:
- Simplified
.github/workflows/pr.yamlto run only the Linux .NET 5–10 test-and-coverage stage plus DevSkim, removing the Windows, macOS, and .NET Framework stages. - Replaced
.github/workflows/release.yamlwith a four-stage pipeline: Linux tests with 90% coverage gate → Windows + macOS .NET tests → Windows .NET Framework 4.x tests → NuGet pack and publish, and added a parallel DevSkim security scan. - Updated the release workflow trigger from
v*.*.*tov*tags (with an attempted branch restriction) and wired the publish job to depend on all test stages.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.github/workflows/pr.yaml |
Narrows PR checks to a single Linux test-and-coverage job with DevSkim, matching the stated goal of faster, Linux-only PR validation. |
.github/workflows/release.yaml |
Introduces a multi-stage, cross-platform test pipeline plus NuGet packaging and a DevSkim scan intended to provide comprehensive validation before publishing. |
Done! Created the workflow split as requested: build.yaml - Triggers on
release.yaml - Triggers on
Changes in commit f7c450a |
Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Chris Wolfgang <210299580+Chris-Wolfgang@users.noreply.github.com>
Description
Workflow optimization to reduce PR CI time while providing separate workflows for build validation and release deployment.
pr.yaml - Stripped to Linux-only testing:
build.yaml - Comprehensive testing workflow (renamed from release.yaml):
build-*on main branchrelease.yaml - NuGet deployment workflow (new):
v*on main branch onlyType of change
How Has This Been Tested?
Checklist
Additional context
Workflow execution paths:
Job count: pr.yaml (5→2), build.yaml (5 jobs), release.yaml (1 job)
Workflow Separation Strategy:
build-*tags for comprehensive pre-release testing without publishingv*tags for actual releases to NuGet.orgOriginal prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.