Skip to content

feat: drive CI/CD pipeline through dev-cli workflow command#11

Merged
StevenTCramer merged 10 commits into
masterfrom
dev
Jun 10, 2026
Merged

feat: drive CI/CD pipeline through dev-cli workflow command#11
StevenTCramer merged 10 commits into
masterfrom
dev

Conversation

@StevenTCramer

Copy link
Copy Markdown
Contributor

Summary

Brings back the NuGet publish capability from the retired ci-cd.yml.bak, but with all pipeline logic living in the dev-cli (following the timewarp-nuru pattern). Also includes the dev-branch chore commits (package updates, ganda audit fixes).

  • workflow-command.cs: auto-detects mode from GITHUB_EVENT_NAME (or --mode). PR/merge runs clean → build → test; release runs check-version → clean → build → push. Invokes sibling command handlers in-process so CI needs no self-install. Release mode verifies the tag matches <Version> in source/Directory.Build.props and pushes artifacts/packages/TimeWarp.OptionsValidation.<version>.nupkg (packing happens on build via GeneratePackageOnBuild).
  • workflow.yml: single dotnet run --file tools/dev-cli/dev.cs -- workflow step; restores the release: published and workflow_dispatch triggers and path filters from the old workflow; passes secrets.PUBLISH_TO_NUGET_ORG as --api-key on releases; uploads artifacts with if: always().
  • Directory.Build.props: renames <PackageVersion> to <Version> so ganda repo check-version can read it (org convention — PackageVersion derives from Version, so the nupkg is unchanged). Related audit gap filed as TimeWarpEngineering/timewarp-ganda#37.

Test plan

  • dev workflow (pr mode) locally: clean → build → test all green (4 passed, 1 skipped)
  • dev check-version reads 1.0.0-beta.4 and correctly flags the existing v1.0.0-beta.4 tag
  • Build produces TimeWarp.OptionsValidation.1.0.0-beta.4.nupkg in artifacts/packages/
  • CI run on this PR exercises the pr path end-to-end

🤖 Generated with Claude Code

StevenTCramer and others added 10 commits June 8, 2026 13:49
Remove unused central package management entries:
- FakeItEasy, Fixie, FluentAssertions, MediatR
- Microsoft.AspNetCore.Mvc.Testing
- Microsoft.CodeAnalysis (kept analyzers and CSharp)

These packages had no PackageReference in any project.
Rename .github/workflows/ci-cd.yml to ci-cd.yml.bak
in preparation for workflow updates.
Align dotnet-tools.json with Fixie.TestAdapter 4.2.0.
Release Drafter GitHub App is not installed on this repo.
The config file was dead code — releases are created manually.

This cleans up the repo from template artifacts that aren't actively used.
Major:
- Microsoft.Extensions.* 9.0.10 → 10.0.8 (fixes GH-10 WASM MethodNotFound)
- Microsoft.CodeAnalysis.* 4.14.0 → 5.3.0
- Microsoft.CodeAnalysis.NetAnalyzers 9.0.0 → 10.0.300

Minor:
- FluentValidation 12.0.0 → 12.1.1
- Fixie.TestAdapter 4.1.0 → 4.2.0
- Roslynator.* 4.14.1 → 4.15.0

Build + tests pass. No breaking changes observed.
- Scaffold dev-cli (tools/dev-cli + bin/dev)
- Add missing directories (documentation/, skills/, kanban/, msbuild/)
- Create supporting files (.envrc, BannedSymbols.txt, msbuild/repository.props, .github/workflows/workflow.yml)
- Update Directory.Build.props with build tasks and banned API config
- Add missing PackageVersion entries (BannedApiAnalyzers, TimeWarp.Amuru, TimeWarp.Terminal, Nuru)

Only remaining issue is 3 orphaned packages in CPM.
Replace the build/test-only GitHub workflow with the timewarp-nuru
pattern: a single `dev workflow` invocation that auto-detects mode
from GITHUB_EVENT_NAME. PR/merge runs clean -> build -> test;
release runs check-version -> clean -> build -> push to NuGet.

- workflow-command.cs: add mode detection and --api-key option,
  invoke sibling handlers in-process (no self-install needed in CI),
  verify release tag matches Version, push the nupkg from
  artifacts/packages
- workflow.yml: restore release/workflow_dispatch triggers and path
  filters from ci-cd.yml.bak, pass PUBLISH_TO_NUGET_ORG on releases,
  upload artifacts with if: always()
- Directory.Build.props: rename PackageVersion to Version so ganda
  repo check-version can read it (org convention; PackageVersion is
  derived from Version so the nupkg is unchanged)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@StevenTCramer StevenTCramer merged commit fea5afe into master Jun 10, 2026
1 check 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.

1 participant