Skip to content

feat: add GitHub Actions CI/CD workflows and local test runner#12

Merged
gragra33 merged 5 commits into
masterfrom
develop
Apr 19, 2026
Merged

feat: add GitHub Actions CI/CD workflows and local test runner#12
gragra33 merged 5 commits into
masterfrom
develop

Conversation

@gragra33
Copy link
Copy Markdown
Owner

Summary

Merges develop into master, bringing in the full CI/CD setup added in PR #11.

Changes

File Description
.github/workflows/ci.yml CI workflow: branch name validation + build & test matrix across net8.0, net9.0, net10.0 on push/PR
.github/workflows/release.yml Release workflow: build, test, pack, tag-guard, GitHub Release creation, NuGet + symbol package push
src/System.Text.Json.Stream.CI.slnf Solution filter scoping CI to library + tests only (excludes benchmark projects)
ci-cd-test-run.ps1 Local runner script — lint (actionlint), dry-run, and full act execution modes

CI status

All 43 tests pass across net8.0, net9.0, and net10.0. Both ci.yml and release.yml passed actionlint (zero violations) and local act dry-run.

Notes

  • Requires a NUGET_API_KEY repository secret to be configured before the release workflow can push to NuGet.org.
  • GITHUB_TOKEN is provided automatically by GitHub Actions — no manual setup needed.

- 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
Copilot AI review requested due to automatic review settings April 19, 2026 07:18
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 local actionlint/act runner 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.

Comment thread .github/workflows/ci.yml Outdated
Comment thread ci-cd-test-run.ps1
Comment thread ci-cd-test-run.ps1
- 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
@gragra33 gragra33 merged commit 85dfdb9 into master Apr 19, 2026
9 checks passed
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.

2 participants