Skip to content
This repository was archived by the owner on Aug 29, 2026. It is now read-only.

Modernize CI/CD: GitHub Actions + MinVer, prep trunk-based branching - #24

Merged
eric-davis merged 2 commits into
devfrom
chore/modernize-pipeline
Aug 29, 2026
Merged

eric-davis merged 2 commits into
devfrom
chore/modernize-pipeline

Conversation

@eric-davis

Copy link
Copy Markdown
Owner

What

Replaces AppVeyor with GitHub Actions and adopts MinVer for automatic, git-tag-based versioning — step 1 of moving to a trunk-based main branch with continuous preview packages + tag-triggered stable releases.

  • .github/workflows/ci.yml — build/test/coverage (Codecov) on PRs and pushes to main. This is the check this PR proves out; it will become the required status check once main is live.
  • .github/workflows/release.yml — packs and publishes to NuGet on every push to main (prerelease, e.g. 3.1.0-preview.0.N) and on vX.Y.Z tag pushes (stable + GitHub Release with auto-generated notes).
  • src/ArgSentry/ArgSentry.csproj — added MinVer, removed the placeholder AssemblyVersion/FileVersion/InformationalVersion properties AppVeyor used to patch by hand.
  • CONTRIBUTING.md — documents the new flow (feature branch → PR → main, automatic prereleases, tag-to-release).
  • README.md — GitHub Actions CI badge replacing AppVeyor; Codecov badge repointed to main.

Not in this PR

appveyor.yml is left in place intentionally — it still targets dev/master and keeps working as a fallback until this pipeline is proven out and main is live. It'll be removed in a follow-up once at least one prerelease and one stable release have gone through the new pipeline successfully. Branch rename (dev → main), branch protection, and secrets (NUGET_API_KEY, CODECOV_TOKEN) setup are separate follow-up steps.

Verification

  • dotnet build and dotnet test pass locally (59/59 tests) with MinVer producing versions correctly (0.0.0-preview.0.N with no tags yet, as expected).
  • This PR's own CI check is the live proof that ci.yml works end-to-end before anything else changes.

🤖 Generated with Claude Code

Replaces the AppVeyor pipeline with GitHub Actions and adopts MinVer
for fully automatic, git-tag-based versioning:

- .github/workflows/ci.yml: build/test/coverage on PRs and pushes to
  main (Codecov upload), the required status check for branch
  protection once main is live.
- .github/workflows/release.yml: on every push to main, packs and
  publishes a NuGet package (prerelease unless HEAD is an exact
  vX.Y.Z tag, per MinVer); on a vX.Y.Z tag push, also creates a
  GitHub Release with auto-generated notes.
- src/ArgSentry/ArgSentry.csproj: added MinVer package reference and
  config (tag prefix "v", preview.0 prerelease identifier), removed
  the placeholder AssemblyVersion/FileVersion/InformationalVersion
  properties that AppVeyor used to patch by hand.
- CONTRIBUTING.md: documents the new trunk-based flow (feature
  branch -> PR -> main), automatic prerelease publishing, and the
  tag-to-release process.
- README.md: swapped the AppVeyor badge for a GitHub Actions CI
  badge; repointed the Codecov badge from master to main.

appveyor.yml is left in place for now and will be removed once this
pipeline is proven out on main, per the migration plan (dev/master
are still the live branches at this commit).
The pull_request trigger was scoped to branches:[main], but main
doesn't exist yet (this repo still targets PRs at dev pending the
branch rename) - so CI was silently not running on PRs. Since this
is a trunk-based setup, every PR will target main once the rename is
done anyway, so dropping the branch filter is correct long-term too.
@eric-davis
eric-davis merged commit e97b72f into dev Aug 29, 2026
2 checks passed
@eric-davis
eric-davis deleted the chore/modernize-pipeline branch August 29, 2026 18:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant