Skip to content

Replace workflow-gen with reusable workflow templates and Bullseye build scripts#352

Merged
damianh merged 1 commit into
mainfrom
dh/kill-workflow-gen
Apr 16, 2026
Merged

Replace workflow-gen with reusable workflow templates and Bullseye build scripts#352
damianh merged 1 commit into
mainfrom
dh/kill-workflow-gen

Conversation

@damianh

@damianh damianh commented Apr 16, 2026

Copy link
Copy Markdown
Member

Summary

Replaces the C# workflow-gen tool (which generated GitHub Actions YAML) with the same pattern used in products-private: reusable workflow_call templates + per-component Bullseye/SimpleExec build.cs scripts backed by a shared BuildHelpers library.

What changed

  • Added .github/BuildHelpers/ shared library (Bullseye 6.1.0 / SimpleExec 12.1.0) with targets for check-formatting, check-no-changes, and test
  • Added ci-template.yml and publish-template.yml reusable workflow templates
  • Added unified release.yml replacing 7 per-component release workflows
  • Added 7 per-component build.cs files and 14 caller workflows (7 CI + 7 publish)
  • Deleted .github/workflow-gen/ directory, generate-test-reports.yml, and 7 *-release.yml files

Security hardening

  • All GitHub Actions pinned to commit SHAs (checkout@v6, setup-dotnet@v5, upload-artifact@v7, download-artifact@v8)
  • SignClientSecret passed via env: blocks instead of CLI arguments
  • shopt -s nullglob before nupkg sign loops
  • Job permissions scoped to least privilege
  • Shell inputs passed through env vars instead of direct interpolation

Notes

  • scorecard.yml and codeql.yml are intentionally unchanged
  • identity-model retains cross-platform testing (ubuntu + windows) via os-matrix input
  • razor-slices has two test targets: test-razor-slices and test-source-generator

Copilot AI review requested due to automatic review settings April 16, 2026 11:59

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates the repo away from the C# workflow-gen-generated GitHub Actions YAML approach to a reusable-workflow + per-component Bullseye build script model, backed by a shared .github/BuildHelpers library. It also consolidates component-specific release workflows into a single unified release.yml.

Changes:

  • Introduces .github/BuildHelpers (Bullseye/SimpleExec) plus per-component build.cs scripts for shared targets and test targets.
  • Replaces per-component CI/publish workflows with thin callers to reusable ci-template.yml and publish-template.yml.
  • Adds a unified .github/workflows/release.yml and removes the old per-component release workflows, the workflow-gen tool, and the test report generator workflow.

Reviewed changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
razor-slices/build.cs Adds component build targets and default target for razor-slices (including two test targets).
memory-cache/build.cs Adds component build targets and default target for memory-cache.
introspection/build.cs Adds component build targets and default target for introspection.
ignore-this/build.cs Adds component build targets and default target for ignore-this.
identity-model/build.cs Adds component build targets and default target for identity-model.
identity-model-oidc-client/build.cs Adds component build targets and default target for identity-model-oidc-client.
access-token-management/build.cs Adds component build targets and default target for access-token-management.
.weave/state.json Adds tool state metadata (should not be committed).
.weave/plans/kill-workflow-gen.md Adds an internal plan document (likely should not be committed).
.github/workflows/release.yml Adds unified release workflow (tagging, pack/sign/push, nuget.org publish).
.github/workflows/razor-slices-release.yml Removes old generated per-component release workflow.
.github/workflows/razor-slices-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/razor-slices-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflows/publish-template.yml Adds reusable publish workflow template (pack/sign/push/upload).
.github/workflows/memory-cache-release.yml Removes old generated per-component release workflow.
.github/workflows/memory-cache-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/memory-cache-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflows/introspection-release.yml Removes old generated per-component release workflow.
.github/workflows/introspection-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/introspection-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflows/ignore-this-release.yml Removes old generated per-component release workflow.
.github/workflows/ignore-this-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/ignore-this-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflows/identity-model-release.yml Removes old generated per-component release workflow.
.github/workflows/identity-model-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/identity-model-oidc-client-release.yml Removes old generated per-component release workflow.
.github/workflows/identity-model-oidc-client-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/identity-model-oidc-client-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflows/identity-model-ci.yml Updates CI workflow to call ci-template.yml with OS matrix input.
.github/workflows/generate-test-reports.yml Removes the separate workflow_run-based test reporting workflow.
.github/workflows/ci-template.yml Adds reusable CI workflow template (format/no-changes + test matrix + reporting).
.github/workflows/access-token-management-release.yml Removes old generated per-component release workflow.
.github/workflows/access-token-management-publish.yml Adds thin publish workflow calling publish-template.yml.
.github/workflows/access-token-management-ci.yml Updates CI workflow to call ci-template.yml.
.github/workflow-gen/workflow-gen.csproj Removes the workflow generator tool project.
.github/workflow-gen/Properties/launchSettings.json Removes workflow generator tool launch settings.
.github/workflow-gen/Program.cs Removes workflow generator tool implementation.
.github/BuildHelpers/Targets.cs Adds shared Bullseye targets for restore/build/format/no-changes/test.
.github/BuildHelpers/BuildHelpers.csproj Adds BuildHelpers project with Bullseye/SimpleExec dependencies.
.config/dotnet-tools.json Adds dotnet tool manifest for NuGetKeyVaultSignTool.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .weave/state.json Outdated
Comment thread .weave/plans/kill-workflow-gen.md Outdated
Comment thread .github/workflows/publish-template.yml
Comment thread .github/workflows/release.yml
Comment thread .github/BuildHelpers/Targets.cs
Comment thread .github/BuildHelpers/Targets.cs
@damianh damianh self-assigned this Apr 16, 2026
@damianh
damianh force-pushed the dh/kill-workflow-gen branch 2 times, most recently from b92a1d8 to 191fb8b Compare April 16, 2026 14:43
…ild scripts

Migrate from C# workflow-gen tool that generated GitHub Actions YAML to
the same pattern used in products-private: reusable workflow_call templates
(ci-template.yml, publish-template.yml) + Bullseye/SimpleExec build scripts
(build.cs per component) backed by a shared BuildHelpers library.

- Add .github/BuildHelpers/ shared library with Bullseye 6.1.0 / SimpleExec 12.1.0
- Add 7 per-component build.cs files with copyright headers
- Add ci-template.yml and publish-template.yml reusable workflows
- Add unified release.yml replacing 7 per-component release workflows
- Add 7 CI and 7 publish caller workflows
- Add Microsoft.Testing.Extensions.TrxReport for --report-trx support
- Delete .github/workflow-gen/ directory and generate-test-reports.yml
- Pin all GitHub Actions to commit SHAs (checkout v6, setup-dotnet v5, etc.)
- Pass secrets via env vars instead of CLI args for security
- Add shopt -s nullglob before nupkg sign loops
- Scope job permissions to least privilege
- Add .weave/ to .gitignore
@damianh
damianh force-pushed the dh/kill-workflow-gen branch from 191fb8b to 2dd858f Compare April 16, 2026 14:50
@damianh
damianh merged commit 47a6081 into main Apr 16, 2026
23 checks passed
@damianh
damianh deleted the dh/kill-workflow-gen branch April 16, 2026 14:55
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.

3 participants