ci: add release notes automation (GitHub native auto-generated notes)#40
ci: add release notes automation (GitHub native auto-generated notes)#40
Conversation
- Add .github/release.yml to categorize PRs by label in release notes - Update squad-release.yml: trigger on tag push, run dotnet test, generate notes - Maps type:feature/bug/chore/docs/spike and priority:p0 labels to sections - Uses gh release create --generate-notes for zero-dependency release notes Closes #N/A (process remediation - was incorrectly pushed directly to main) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Merged aragorn-release-notes-impl.md decision into decisions.md - Created session log with implementation summary Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR implements GitHub's native auto-generated release notes feature for the TailwindBlogApp repository. The implementation replaces placeholder TODO stubs in the release workflow with a functional tag-triggered release pipeline that validates the codebase through testing before creating releases with automatically generated notes based on PR labels.
Changes:
- Added
.github/release.ymlto configure release note categorization based on PR labels (6 categories) - Updated
.github/workflows/squad-release.ymlwith complete .NET build/test/release pipeline triggered by semantic version tags - Added documentation in
.squad/log/and.squad/decisions/tracking the implementation work
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
.github/release.yml |
Configures GitHub auto-generated release notes with label-to-category mappings for 6 sections (Features, Improvements, Docs, Bug Fixes, Research, Infrastructure) |
.github/workflows/squad-release.yml |
Implements tag-triggered release workflow with .NET 10 build/test validation and release creation with auto-generated notes |
.squad/log/2026-02-24T14-35-00Z-release-notes-impl.md |
Session log documenting the implementation work by Aragorn |
.squad/decisions/inbox/aragorn-release-notes-impl.md |
Decision inbox entry documenting the release notes automation decision |
.squad/decisions/decisions.md |
Updated with detailed implementation details and rationale for the release notes automation |
| labels: | ||
| - type:feature | ||
| - enhancement | ||
| - title: "🔧 Improvements & Chores" |
There was a problem hiding this comment.
Discrepancy with PR description: The PR description states that type:chore maps to "🔧 Improvements", but the actual implementation (line 18) uses "🔧 Improvements & Chores". Additionally, the PR description states that priority:p0 maps to "🚀 Infrastructure", but the implementation (line 33) uses "🚀 Infrastructure & DevOps". Update either the PR description or the file content to ensure consistency.
| - name: Set up .NET | ||
| uses: actions/setup-dotnet@v4 | ||
| with: | ||
| dotnet-version: '10.0.x' |
There was a problem hiding this comment.
Inconsistent .NET version configuration: This workflow uses dotnet-version: '10.0.x' while all other workflows in the repository use global-json-file: global.json to specify the .NET version. For consistency with the established pattern, replace the explicit version specification with global-json-file: global.json, which will use the SDK version defined in the global.json file (10.0.100).
| dotnet-version: '10.0.x' | |
| global-json-file: global.json |
| - title: "🚀 Infrastructure & DevOps" | ||
| labels: | ||
| - priority:p0 |
There was a problem hiding this comment.
Semantic mismatch: The label priority:p0 is defined in sync-squad-labels.yml as "Blocking release" (a priority indicator), but here it's mapped to "🚀 Infrastructure & DevOps" which is a category type. Priority labels should indicate urgency, not content type. Consider either: (1) creating a dedicated type:infrastructure or type:devops label for this category, or (2) removing this category if infrastructure changes should be categorized by their type (feature, bug, chore, etc.) instead.
| - title: "🚀 Infrastructure & DevOps" | |
| labels: | |
| - priority:p0 |
|
|
||
| ## Decision Inbox Processed | ||
|
|
||
| Merged `aragorn-release-notes-impl.md` into `.squad/decisions/decisions.md`; deleted inbox file. |
There was a problem hiding this comment.
Inconsistency in documentation: The log states "deleted inbox file" (line 17), but this PR is actually adding the file .squad/decisions/inbox/aragorn-release-notes-impl.md as a new file. If this file was previously deleted when the work was pushed directly to main, and this PR is meant to follow the correct branch → PR process (as stated in PR description), then this inbox file should probably not be re-added. Consider whether this inbox file should be included in this PR or if it should remain deleted as originally intended.
| Merged `aragorn-release-notes-impl.md` into `.squad/decisions/decisions.md`; deleted inbox file. | |
| Merged `aragorn-release-notes-impl.md` into `.squad/decisions/decisions.md`; inbox file retained in `.squad/decisions/inbox/`. |
| @@ -12,23 +12,46 @@ jobs: | |||
| release: | |||
| runs-on: ubuntu-latest | |||
There was a problem hiding this comment.
Missing timeout configuration: All other workflows in the repository (squad-test.yml) specify timeout-minutes for their jobs (typically 10-15 minutes). Consider adding timeout-minutes: 15 to the release job to prevent it from running indefinitely in case of issues, which is consistent with the codebase convention.
| runs-on: ubuntu-latest | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 |
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| - uses: actions/checkout@v4 |
There was a problem hiding this comment.
Inconsistent action version: this workflow uses actions/checkout@v4 while all other workflows in the repository use @v6. For consistency and to use the latest version, update this to actions/checkout@v6.
| - uses: actions/checkout@v4 | |
| - uses: actions/checkout@v6 |
|
|
||
| - name: Build and test | ||
| - name: Set up .NET | ||
| uses: actions/setup-dotnet@v4 |
There was a problem hiding this comment.
Inconsistent action version: this workflow uses actions/setup-dotnet@v4 while all other workflows in the repository use @v5. For consistency and to use the latest version, update this to actions/setup-dotnet@v5.
| uses: actions/setup-dotnet@v4 | |
| uses: actions/setup-dotnet@v5 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #40 +/- ##
=======================================
Coverage 21.95% 21.95%
=======================================
Files 20 20
Lines 492 492
Branches 17 17
=======================================
Hits 108 108
Misses 376 376
Partials 8 8 🚀 New features to boost your workflow:
|
|
@copilot open a new pull request to apply changes based on the comments in this thread |
|
@mpaulosky I've opened a new pull request, #43, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: mpaulosky <60372079+mpaulosky@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Summary
Implements GitHub native auto-generated release notes.
Changes
Process note
This was initially pushed directly to main in error. This PR follows the correct branch → build → PR process.
Labels mapping