Conversation
- ci.yml: build & test matrix across net8.0, net9.0, net10.0 on push/PR - release.yml: build, test, pack, tag-guard, GitHub Release, NuGet push - System.Text.Json.Stream.CI.slnf: solution filter (library + tests only, excludes benchmarks) - ci-cd-test-run.ps1: local runner with lint, dry-run, and full act execution modes
- ci.yml: add --no-build --no-restore to dotnet test step - ci.yml: clarify continue-on-error intent with comment (env.ACT approach rejected — trips actionlint) - release.yml: add --no-build --no-restore to all three dotnet test steps - ci-cd-test-run.ps1: downgrade dotnet host check to warning (act installs .NET in runner) - ci-cd-test-run.ps1: add Test-Tool 'docker' check before docker info for clearer error on missing vs. stopped Docker
feat: add GitHub Actions CI/CD workflows and local test runner
There was a problem hiding this comment.
Pull request overview
Introduces a GitHub Actions-based CI/CD setup plus a local PowerShell runner script to lint and execute workflows locally, and scopes CI builds to a solution filter to avoid benchmarks.
Changes:
- Add CI workflow with PR branch-name validation and a net8.0/net9.0/net10.0 build+test matrix.
- Add Release workflow to build/test/pack, create a GitHub Release, and push packages to NuGet.org.
- Add a CI solution filter (
.slnf) and a localactionlint/actrunner script.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Adds CI validation + build/test matrix and publishes test artifacts |
.github/workflows/release.yml |
Adds release automation: build/test/pack/tag-guard/release/NuGet push |
src/System.Text.Json.Stream.CI.slnf |
Limits CI scope to library + tests (excludes benchmarks) |
ci-cd-test-run.ps1 |
Adds local workflow lint/dry-run/full-run helper using actionlint + act |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- ci.yml: add workflow-level RUNNING_LOCALLY env var; gate upload-artifact on env.RUNNING_LOCALLY == '' so it only runs on real GitHub Actions (not locally via act), eliminating the need for continue-on-error: true - ci-cd-test-run.ps1: pass --env RUNNING_LOCALLY=true to all act invocations (dry-run and full execution) so the upload step is skipped locally - ci-cd-test-run.ps1: add explicit push-to-master event payload (-e flag) to Release workflow in full-execution path, matching the dry-run path - ci-cd-test-run.ps1: narrow dry-run error filter — remove broad 'The system cannot find the file specified' exclusion from both $failed and $knownArtifactCacheIssue; use only the specific .cache\act\actions-upload-artifact pattern to detect the known act Windows cache-cleanup bug
fix: address Copilot PR #12 review suggestions
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.
Summary
Merges
developintomaster, bringing in the full CI/CD setup added in PR #11.Changes
.github/workflows/ci.ymlnet8.0,net9.0,net10.0on push/PR.github/workflows/release.ymlsrc/System.Text.Json.Stream.CI.slnfci-cd-test-run.ps1actionlint), dry-run, and fullactexecution modesCI status
All 43 tests pass across
net8.0,net9.0, andnet10.0. Bothci.ymlandrelease.ymlpassedactionlint(zero violations) and localactdry-run.Notes
NUGET_API_KEYrepository secret to be configured before the release workflow can push to NuGet.org.GITHUB_TOKENis provided automatically by GitHub Actions — no manual setup needed.