feat: drive CI/CD pipeline through dev-cli workflow command#11
Merged
Conversation
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>
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
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 fromGITHUB_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>insource/Directory.Build.propsand pushesartifacts/packages/TimeWarp.OptionsValidation.<version>.nupkg(packing happens on build viaGeneratePackageOnBuild).workflow.yml: singledotnet run --file tools/dev-cli/dev.cs -- workflowstep; restores therelease: publishedandworkflow_dispatchtriggers and path filters from the old workflow; passessecrets.PUBLISH_TO_NUGET_ORGas--api-keyon releases; uploads artifacts withif: always().Directory.Build.props: renames<PackageVersion>to<Version>soganda repo check-versioncan read it (org convention —PackageVersionderives fromVersion, 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-versionreads 1.0.0-beta.4 and correctly flags the existingv1.0.0-beta.4tagTimeWarp.OptionsValidation.1.0.0-beta.4.nupkginartifacts/packages/🤖 Generated with Claude Code