ci: rename CI references to Squad CI - #94
Conversation
🏗️ PR Added to Squad Triage QueueThis PR has been labeled with Next steps:
|
…learnings Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitVersion auto-increments on main; v1.0.0-sprint3 is final sprint tag. Subsequent releases follow pure semantic versioning from v1.0.1 onwards. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When CI runs on main after merge, create and push the git tag based on GitVersion-determined semver. This enables v1.0.1, v1.0.2, etc. to be automatically tagged without manual intervention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitVersion v4 action no longer accepts 'useConfigFile'. Use 'configFilePath' to explicitly specify the GitVersion.yml location. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The 'Create and Push Git Tag' step requires 'contents: write' permission to push tags to the repository. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
semVer includes pre-release height on non-main branches, resulting in tags like v1.0.0-101. On main, we want clean semver tags like v1.0.1, which comes from the majorMinorPatch output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Document the new automatic versioning workflow with GitVersion. This is the first commit after v1.0.0, which will trigger v1.0.1 tag creation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Aligns with squad naming conventions and PRD specification. All squad-managed workflows use the 'squad-' prefix. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…idates and blog-only paths
5a5660a to
8d2faea
Compare
Test Results Summary6 tests 6 ✅ 0s ⏱️ Results for commit 8d2faea. |
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. Thanks for integrating Codecov - We've got you covered ☂️ |
There was a problem hiding this comment.
Pull request overview
Renames and expands CI/CD-related workflows and documentation to use “Squad” terminology, while introducing additional automation for testing, releases, docs, and blog/README synchronization.
Changes:
- Replaces the legacy
CIworkflow with new “Squad” workflows (build, tests, release, promote, preview, docs, pages/blog sync). - Adds/updates documentation and static site assets under
docs/, plus build/test log artifacts. - Updates .NET SDK tooling support (adds
dotnet-install.sh, tweaksglobal.json) and adjusts Squad decision/history docs.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
| global.json | Minor formatting change; retains SDK pin (10.0.202). |
| dotnet-install.sh | Adds .NET installer script for onboarding/SDK install automation. |
| docs/index.html | Adds a static project landing page with workflow badges and docs links. |
| docs/build-log.txt | Adds a captured build/test log (appears locally generated). |
| docs/blazor-web-app-starter-template-prd.md | Updates template PRD references (IssueTracker → MyBlog). |
| docs/THEMING.md | Adds theming documentation. |
| docs/TESTING.md | Adds testing/coverage documentation. |
| docs/SECRETS.md | Adds secrets management documentation. |
| build-output.log | Adds captured build output log (appears locally generated). |
| RELEASE.md | Documents the release/versioning process and tagging strategy. |
| .squad/decisions/DELETED-ASSETS.md | Updates deleted asset naming (release playbook rename). |
| .squad/decisions.md | Adds/updates active decisions (notably versioning strategy). |
| .squad/agents/pippin/history.md | Updates agent history wording for renamed playbook. |
| .squad/agents/aragorn/history.md | Updates agent history (includes additional workflow/CI commentary). |
| .squad/.ralph-state.json | Adds a Ralph runtime/state JSON file. |
| .github/workflows/sync-readme.yml | Adds workflow to sync root README into docs/README.md. |
| .github/workflows/static.yml | Adds Pages deployment workflow for docs/blog/. |
| .github/workflows/squad-test.yml | Reworks test execution into a “Test Suite” workflow with coverage/reporting. |
| .github/workflows/squad-release.yml | Adds release workflow triggered by semver tags. |
| .github/workflows/squad-promote.yml | Adds workflow to open dev → main promotion PRs. |
| .github/workflows/squad-preview.yml | Adds dev-branch validation workflow (restore/build/test). |
| .github/workflows/squad-milestone-release.yml | Adds manual milestone-based tag + release workflow. |
| .github/workflows/squad-insider-release.yml | Adds insider-branch prerelease tagging + release workflow. |
| .github/workflows/squad-docs.yml | Adds placeholder docs build workflow (currently echo/TODO). |
| .github/workflows/squad-ci.yml | Adds “Squad CI” build-only workflow for PRs/pushes. |
| .github/workflows/release-blog.yml | Adds workflow to open a Bilbo blog-brief issue on release publish. |
| .github/workflows/milestone-release-decision.yml | Adds label-driven branching for “release-candidate” vs “blog-only” milestone outcomes. |
| .github/workflows/milestone-blog.yml | Adds milestone-close workflow to create Ralph review issues. |
| .github/workflows/code-metrics.yml | Adds a code metrics workflow that can open PRs with updated metrics. |
| .github/workflows/blog-readme-sync.yml | Adds workflow to sync README “Dev Blog” section from docs/blog/index.md. |
| .github/workflows/ci.yml | Removes the legacy CI workflow. |
Comments suppressed due to low confidence (1)
.github/workflows/squad-ci.yml:3
- The PR title/description says this is a rename of CI references to "Squad CI", but the diff includes many additional changes (new workflows beyond rename, new
dotnet-install.sh, new docs pages/logs, SDK pin changes, removal of the previousci.yml). Consider splitting into focused PRs or updating the PR description to reflect the expanded scope so reviewers can assess risk appropriately.
| echo 'Reason: ${{ github.event.inputs.reason }}' | ||
| - name: .NET code metrics | ||
| id: dotnet-code-metrics | ||
| uses: dotnet/samples/github-actions/DotNet.GitHubAction@main |
There was a problem hiding this comment.
This workflow references dotnet/samples/github-actions/DotNet.GitHubAction@main. Using a moving branch for GitHub Actions dependencies is a supply-chain risk and can introduce breaking changes without warning; pin this action to a specific tagged release or commit SHA instead.
| uses: dotnet/samples/github-actions/DotNet.GitHubAction@main | |
| uses: dotnet/samples/github-actions/DotNet.GitHubAction@<FULL_LENGTH_COMMIT_SHA> |
| - name: Build Integration Tests | ||
| run: dotnet build tests/Web.Tests.Integration --configuration Release --no-restore | ||
|
|
There was a problem hiding this comment.
The integration job builds/tests tests/Web.Tests.Integration, but the repo currently has tests/Integration.Tests (per MyBlog.slnx) and no tests/Web.Tests.Integration directory. The unconditional build step here will fail; update to the existing tests/Integration.Tests project or add the missing project.
| "$integration_status" == "failure" || "$mongodb_status" == "failure" || \ | ||
| "$apphost_status" == "failure" ]]; then |
There was a problem hiding this comment.
The overall status computation references $mongodb_status, but that variable is never set in this script. This can cause incorrect overall PASS/FAIL reporting; remove that check or define/populate mongodb_status consistently with the other needs.*.result variables.
| "$integration_status" == "failure" || "$mongodb_status" == "failure" || \ | |
| "$apphost_status" == "failure" ]]; then | |
| "$integration_status" == "failure" || "$apphost_status" == "failure" ]]; then |
| dotnet test tests/Domain.Tests --configuration Release --no-build --no-restore \ | ||
| --logger "trx;LogFileName=domain-results.trx" | ||
| dotnet test tests/Web.Tests --configuration Release --no-build --no-restore \ | ||
| --logger "trx;LogFileName=web-results.trx" | ||
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore \ | ||
| --logger "trx;LogFileName=arch-results.trx" | ||
| dotnet test tests/Web.Tests.Bunit --configuration Release --no-build --no-restore \ | ||
| --logger "trx;LogFileName=bunit-results.trx" |
There was a problem hiding this comment.
This release workflow runs dotnet test against tests/Domain.Tests, tests/Web.Tests, and tests/Web.Tests.Bunit, but those projects don’t exist in the current repo/solution (MyBlog.slnx only lists tests/Unit.Tests, tests/Integration.Tests, tests/Architecture.Tests). As written, releases will fail at test time; update the test commands to the actual projects or add the missing ones.
| dotnet test tests/Domain.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=domain-results.trx" | |
| dotnet test tests/Web.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=web-results.trx" | |
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=arch-results.trx" | |
| dotnet test tests/Web.Tests.Bunit --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=bunit-results.trx" | |
| dotnet test tests/Unit.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=unit-results.trx" | |
| dotnet test tests/Integration.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=integration-results.trx" | |
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore \ | |
| --logger "trx;LogFileName=arch-results.trx" |
| This document covers the testing strategy, test projects, and code coverage requirements for IssueTrackerApp. | ||
|
|
||
| ## Test Projects | ||
|
|
||
| | Project | Type | Description | | ||
| |---------|------|-------------| | ||
| | `Domain.Tests` | Unit | MediatR handlers, validators, models, DTOs, Result<T> utilities | | ||
| | `Architecture.Tests` | Rules | Layer dependencies, naming conventions, code structure rules | | ||
| | `Web.Tests` | Unit | Web service tests, security tests | | ||
| | `Web.Tests.Bunit` | Component | Blazor UI component tests with bUnit | | ||
| | `Web.Tests.Integration` | Integration | Full HTTP request pipelines with real MongoDB | | ||
|
|
||
| ## Running Tests | ||
|
|
||
| ### Run All Tests | ||
|
|
||
| ```bash | ||
| dotnet test IssueTrackerApp.slnx | ||
| ``` | ||
|
|
||
| ### Run Specific Test Project | ||
|
|
||
| ```bash | ||
| dotnet test tests/Domain.Tests | ||
| dotnet test tests/Web.Tests | ||
| dotnet test tests/Architecture.Tests | ||
| dotnet test tests/Web.Tests.Bunit | ||
| dotnet test tests/Web.Tests.Integration | ||
| ``` |
There was a problem hiding this comment.
This testing guide still refers to IssueTrackerApp and documents test projects/commands (Domain.Tests, Web.Tests, Web.Tests.Bunit, Web.Tests.Integration, IssueTrackerApp.slnx) that don’t exist in this repository. Update the names and commands to match MyBlog.slnx and the actual test projects (Unit.Tests, Integration.Tests, Architecture.Tests) so the doc stays accurate.
| - name: Build AppHost.Tests | ||
| run: dotnet build tests/AppHost.Tests --configuration Release --no-restore | ||
|
|
There was a problem hiding this comment.
The workflow builds/tests tests/AppHost.Tests, but there is no tests/AppHost.Tests project in this repo. This will break the workflow on all runs; either add the project to the repo/solution or remove/guard this job.
| <meta charset="UTF-8"> | ||
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>MyBlog</title> | ||
| <meta name="description" content="A modern Bloging application built with .NET Aspire, Blazor, and MongoDB."> |
There was a problem hiding this comment.
Typo in the meta description: "Bloging" → "Blogging".
| <meta name="description" content="A modern Bloging application built with .NET Aspire, Blazor, and MongoDB."> | |
| <meta name="description" content="A modern Blogging application built with .NET Aspire, Blazor, and MongoDB."> |
| <h1>MyBlog</h1> | ||
|
|
||
| <p>A modern issue tracking application built with .NET Aspire, Blazor, and MongoDB.</p> | ||
|
|
There was a problem hiding this comment.
The page describes MyBlog as a "Blogging application" in the meta description but as an "issue tracking application" in the visible intro. Align these descriptions so readers (and SEO) aren’t given conflicting information about what the project is.
| dotnet test tests/Domain.Tests --configuration Release --no-build --no-restore | ||
| dotnet test tests/Web.Tests --configuration Release --no-build --no-restore | ||
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore | ||
| dotnet test tests/Web.Tests.Bunit --configuration Release --no-build --no-restore |
There was a problem hiding this comment.
This workflow runs tests for tests/Domain.Tests, tests/Web.Tests, and tests/Web.Tests.Bunit, but those projects aren’t present in the repo (current MyBlog.slnx includes tests/Unit.Tests, tests/Integration.Tests, tests/Architecture.Tests). This will cause insider releases to fail; update the test paths to match the actual test projects or add the missing projects.
| dotnet test tests/Domain.Tests --configuration Release --no-build --no-restore | |
| dotnet test tests/Web.Tests --configuration Release --no-build --no-restore | |
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore | |
| dotnet test tests/Web.Tests.Bunit --configuration Release --no-build --no-restore | |
| dotnet test tests/Unit.Tests --configuration Release --no-build --no-restore | |
| dotnet test tests/Integration.Tests --configuration Release --no-build --no-restore | |
| dotnet test tests/Architecture.Tests --configuration Release --no-build --no-restore |
|
|
||
| <div class="badges"> | ||
| <a href="https://dotnet.microsoft.com/"><img src="https://img.shields.io/badge/.NET-10-512BD4?logo=dotnet" alt=".NET 10"></a> | ||
| <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="MIT License"></a> |
There was a problem hiding this comment.
docs/index.html links to LICENSE as a relative path, but there is no docs/LICENSE file. If this page is served from the docs/ directory, that link will 404; consider using ../LICENSE (for repo-relative) or a GitHub URL to the license file.
| <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="MIT License"></a> | |
| <a href="https://github.com/mpaulosky/MyBlog/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="MIT License"></a> |
|
Completes rename of workflow documentation and config references from generic CI to Squad CI naming. Aligns with squad operational terminology.