Skip to content

feat: add nightly preview NuGet release workflow - #218

Merged
BenjaminMichaelis merged 1 commit into
mainfrom
benjaminmichaelis-nightly-preview-release
Aug 7, 2026
Merged

feat: add nightly preview NuGet release workflow#218
BenjaminMichaelis merged 1 commit into
mainfrom
benjaminmichaelis-nightly-preview-release

Conversation

@BenjaminMichaelis

Copy link
Copy Markdown
Member

Summary

Adds .github/workflows/nightly-preview.yml - a nightly workflow that publishes a preview NuGet package for IntelliTect.Multitool, but only when there have been changes since the last published package. Modeled after the pattern in BenjaminMichaelis/DotnetTemplates, adapted to this repo's existing conventions.

How it works

  1. check-for-changes - checks out full history, queries the NuGet registration API (intellitect.multitool) for the latest published version's publish date, and compares it against the latest commit date. If nothing changed, the rest of the workflow is skipped. workflow_dispatch always forces a run (for manual testing).
  2. build-test-pack - restores, builds, tests, and packs using the same flags as build-and-test.yml/deploy.yml. Version is computed as <latest-tag-patch-bumped>-preview.<yyyyMMdd>.<run_number> (e.g. 1.0.2-preview.20260806.42).
  3. deploy - reuses the existing OIDC-based NuGet trusted publishing login (NuGet/login@v1, same as deploy.yml) and pushes with --skip-duplicate. No GitHub Release is created for these preview builds - only tagged releases get those via deploy.yml.

Notes / assumptions

  • Nightly cron: 5 10 * * * (10:05 UTC daily) - adjust if a different time is preferred.
  • Doesn't touch deploy.yml or build-and-test.yml; fully additive.
  • No attest/softprops/action-gh-release steps for nightly builds, since these are ephemeral preview packages rather than tagged releases.

Verified the workflow YAML parses correctly (yaml.safe_load); actionlint wasn't available locally to lint further.

Adds .github/workflows/nightly-preview.yml which publishes a preview
NuGet package for IntelliTect.Multitool nightly, but only when there
are commits newer than the last published package (checked via the
NuGet registration API). Manual runs via workflow_dispatch always
force a build/publish.

Reuses the existing OIDC-based NuGet trusted publishing login step
from deploy.yml. Preview packages are versioned as
<base>-preview.<yyyyMMdd>.<run_number> and are not attached to a
GitHub Release (only tagged releases get those, via deploy.yml).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@BenjaminMichaelis
BenjaminMichaelis merged commit e9bd6b2 into main Aug 7, 2026
5 checks passed
@BenjaminMichaelis
BenjaminMichaelis deleted the benjaminmichaelis-nightly-preview-release branch August 7, 2026 03:42
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