Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 80 additions & 3 deletions .github/workflows/squad-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ permissions:
contents: read

jobs:
validate:
build:
name: Build Solution
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6

Expand All @@ -25,8 +27,83 @@ jobs:
- name: Build
run: dotnet build IssueTrackerApp.slnx --configuration Release --no-restore -p:TreatWarningsAsErrors=true

test-fast:
name: Fast Unit Tests
runs-on: ubuntu-latest
timeout-minutes: 10
needs: build
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json

- name: Restore
run: dotnet restore IssueTrackerApp.slnx

- name: Build
run: dotnet build IssueTrackerApp.slnx --configuration Release --no-restore

- name: Run fast unit tests
run: |
dotnet test tests/Architecture.Tests/Architecture.Tests.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Domain.Tests/Domain.Tests.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Web.Tests.Bunit/Web.Tests.Bunit.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Persistence.MongoDb.Tests/Persistence.MongoDb.Tests.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Web.Tests/Web.Tests.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Persistence.AzureStorage.Tests/Persistence.AzureStorage.Tests.csproj --configuration Release --no-build --verbosity minimal

test-integration:
name: Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 15
needs: build
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json

- name: Restore
run: dotnet restore IssueTrackerApp.slnx

- name: Build
run: dotnet build IssueTrackerApp.slnx --configuration Release --no-restore

- name: Run integration tests
run: |
dotnet test tests/Persistence.MongoDb.Tests.Integration/Persistence.MongoDb.Tests.Integration.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Web.Tests.Integration/Web.Tests.Integration.csproj --configuration Release --no-build --verbosity minimal
dotnet test tests/Persistence.AzureStorage.Tests.Integration/Persistence.AzureStorage.Tests.Integration.csproj --configuration Release --no-build --verbosity minimal

test-apphost:
name: AppHost Tests (Aspire + Playwright)
runs-on: ubuntu-latest
timeout-minutes: 45
Comment on lines +76 to +79
needs: build
env:
ASPIRE_ALLOW_UNSECURED_TRANSPORT: "true"
ConnectionStrings__mongodb: "mongodb://localhost:27017"
steps:
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json

- name: Restore
run: dotnet restore IssueTrackerApp.slnx

- name: Build
run: dotnet build IssueTrackerApp.slnx --configuration Release --no-restore

- name: Install Playwright browsers
run: pwsh tests/AppHost.Tests/bin/Release/net10.0/playwright.ps1 install chromium --with-deps

- name: Run unit tests
run: dotnet test IssueTrackerApp.slnx --configuration Release --no-build --verbosity normal
- name: Run AppHost tests
run: dotnet test tests/AppHost.Tests/AppHost.Tests.csproj --configuration Release --no-build --verbosity normal
14 changes: 14 additions & 0 deletions .squad/agents/aragorn/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -485,3 +485,17 @@ All three blockers from first review **REMAIN UNRESOLVED** on current PR revisio
**Output:** Re-review rejection rationale, blocker list, Sam handoff notes.

**Status:** ✅ Complete — Rejection logged, board notified, Sam awaiting assignment confirmation.

---

### 2026-05-04 — PR Triage: #274

**Session:** Ralph Go Round One
**Outcome:**
- PR #274 (fix: isolate AppHost preview validation job) triaged.
- Conflict identified: `.github/workflows/squad-preview.yml` merge conflict.
- Conflict belongs to Boromir (DevOps domain).
- Routing action: Add `squad:boromir` label and route to Boromir for resolution.
- Options documented: Rebase (Option A), Merge local fix & close (Option B), or two-phase merge (Option C).
- PR remains blocked pending conflict resolution.

10 changes: 10 additions & 0 deletions .squad/agents/boromir/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -263,3 +263,13 @@ for `chrome-headless-shell`, causing 38 AppHost tests to fail immediately.
- `dotnet test IssueTrackerApp.slnx --configuration Release --no-build --verbosity minimal`

**Key path:** `.github/workflows/squad-preview.yml`

---

### 2026-05-04 — PR Review: #275 & #276

**Session:** Ralph Go Round One
**Outcome:**
- PR #275 — Ready for Aragorn review. All criteria met.
- PR #276 — Blocked by dependency-driven failure in Persistence.AzureStorage.Tests.Integration. Root cause likely tied to NuGet bumps rather than SDK bump. Awaiting triage.

25 changes: 25 additions & 0 deletions .squad/agents/gimli/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,28 @@
- Duration: ~31s
- **Verdict:** ALL GREEN — no test modifications required; previous fixes are fully effective ✅
- **Key Lesson:** Always verify previous sprint fixes are persisted on the branch before beginning new work — in this case both fixes were intact and no code edits were needed.

### PR #276 Test Failure Investigation (2026-05-04, by mpaulosky request)
- **Task:** Diagnose failing `Persistence.AzureStorage.Tests.Integration` check in PR #276 (dependency bump PR)
- **PR:** Bump the all-actions group with 3 updates
- Azure.Storage.Blobs: 12.20.0 → 12.27.0 ⚠️
- Azure.Monitor.OpenTelemetry.AspNetCore: 1.4.0 → 1.5.0
- Aspire.Hosting.Redis: 13.2.1 → 13.2.4
- **Root Cause:** **API Version Mismatch** — Azure.Storage.Blobs 12.27.0 sends API version `2026-02-06` in Blob Storage requests. Testcontainers.Azurite 4.11.0 bundles Azurite 3.35.0, which doesn't support this new API version.
- **Error Details:**
```
Azure.RequestFailedException: The API version 2026-02-06 is not supported by Azurite.
Please upgrade Azurite to latest version and retry.
ErrorCode: InvalidHeaderValue
Status: 400
```
- **Culprit:** **Azure.Storage.Blobs 12.27.0 bump** — Direct cause of test failures; other bumps are unrelated
- **Test Impact:** All 25 integration tests fail at `BlobContainerClient.CreateIfNotExistsAsync()` when SDK attempts to contact Azurite
- **Tests Pass on dev:** ✅ Confirmed — Testcontainers.Azurite 4.11.0 + Azure.Storage.Blobs 12.20.0 compatible
- **Tests Fail on PR #276:** ❌ Confirmed — Testcontainers.Azurite 4.11.0 + Azure.Storage.Blobs 12.27.0 incompatible
- **Verdict:** **BLOCKER** — PR #276 cannot merge until Testcontainers.Azurite is upgraded to support Azure Storage Blob API v2026-02-06
- **Next Steps for Owner (Boromir/Aragorn):**
1. Upgrade `Testcontainers.Azurite` in `Directory.Packages.props` to a version that bundles Azurite supporting API v2026-02-06 (likely v4.12.0+)
2. Re-run integration tests to confirm all 25 tests pass
3. Ensure no other Azure Storage API changes break existing test patterns
- **Key Lesson:** Dependency bumps in Azure SDK versions must be accompanied by corresponding test infrastructure (Testcontainers/Azurite) upgrades; monitor Azure Storage API versioning in release notes
Loading