From b9440405f01b2e5f985548aeba14ed12d9a8edbe Mon Sep 17 00:00:00 2001 From: dex-the-ai Date: Tue, 29 Sep 2026 15:07:54 +0000 Subject: [PATCH 1/3] chore(deps): update .NET dependencies and CI actions Supersedes #145, rebuilt on current main (keeps #146's continue-on-error on the Slack step). - API: BCrypt.Net-Next 4.2.0, CouchbaseNetClient and Couchbase.Extensions.DependencyInjection 3.9.6, Swashbuckle.AspNetCore and Annotations 10.2.3 (Program.cs now imports Microsoft.OpenApi) - Tests: Microsoft.NET.Test.Sdk 18.10.1, xunit.runner.visualstudio 4.0.0, coverlet.* 10.1.0, Microsoft.AspNetCore.Mvc.Testing 8.0.31 (latest for net8.0) - CI: actions/checkout v7, actions/setup-dotnet v6, ravsamhq/notify-slack-action 2.5.0 Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/dotnet.yml | 6 +++--- src/Org.Quickstart.API/Org.Quickstart.API.csproj | 10 +++++----- src/Org.Quickstart.API/Program.cs | 2 +- .../Org.Quickstart.IntegrationTests.csproj | 10 +++++----- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 6739df2..00da6a0 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -15,12 +15,12 @@ jobs: DB_USERNAME: ${{ vars.DB_USERNAME }} DB_PASSWORD: ${{ secrets.DB_PASSWORD }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 - name: Check Memory Free run: | free -m - name: Setup .NET - uses: actions/setup-dotnet@v1 + uses: actions/setup-dotnet@v6 with: dotnet-version: 8.0.x - name: Restore dependencies @@ -38,7 +38,7 @@ jobs: - name: Report Status if: always() continue-on-error: true - uses: ravsamhq/notify-slack-action@v1 + uses: ravsamhq/notify-slack-action@2.5.0 with: status: ${{ job.status }} notify_when: "failure,warnings" diff --git a/src/Org.Quickstart.API/Org.Quickstart.API.csproj b/src/Org.Quickstart.API/Org.Quickstart.API.csproj index f556581..ba0c1c7 100644 --- a/src/Org.Quickstart.API/Org.Quickstart.API.csproj +++ b/src/Org.Quickstart.API/Org.Quickstart.API.csproj @@ -11,10 +11,10 @@ - - - - - + + + + + diff --git a/src/Org.Quickstart.API/Program.cs b/src/Org.Quickstart.API/Program.cs index a58a7d4..69d4bdd 100644 --- a/src/Org.Quickstart.API/Program.cs +++ b/src/Org.Quickstart.API/Program.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using Org.Quickstart.API.Models; using Couchbase.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting.Server; diff --git a/src/Org.Quickstart.IntegrationTests/Org.Quickstart.IntegrationTests.csproj b/src/Org.Quickstart.IntegrationTests/Org.Quickstart.IntegrationTests.csproj index 3ef1729..20047e6 100644 --- a/src/Org.Quickstart.IntegrationTests/Org.Quickstart.IntegrationTests.csproj +++ b/src/Org.Quickstart.IntegrationTests/Org.Quickstart.IntegrationTests.csproj @@ -11,18 +11,18 @@ 4 - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all From 6e18a0e872a3984c4178c9980b361d9639775595 Mon Sep 17 00:00:00 2001 From: dex-the-ai Date: Tue, 29 Sep 2026 15:10:39 +0000 Subject: [PATCH 2/3] ci: build the whole solution so integration tests actually run The workflow only built Org.Quickstart.API, so 'dotnet test --no-build' in the test project found nothing to run and the step passed without running any tests. Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/dotnet.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 00da6a0..147ef80 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -24,13 +24,9 @@ jobs: with: dotnet-version: 8.0.x - name: Restore dependencies - run: | - cd src/Org.Quickstart.API - dotnet restore + run: dotnet restore Org.Quickstart.sln - name: Build - run: | - cd src/Org.Quickstart.API - dotnet build --configuration Debug --no-restore + run: dotnet build Org.Quickstart.sln --configuration Debug --no-restore - name: Test run: | cd src/Org.Quickstart.IntegrationTests From ff02d9db717df780e4c378581ee2035c2922e7fb Mon Sep 17 00:00:00 2001 From: dex-the-ai Date: Tue, 29 Sep 2026 16:14:06 +0000 Subject: [PATCH 3/3] ci: pin Couchbase network resolution to default The shared CI Capella cluster now advertises a private-endpoint alternate address for one node. With the SDK's auto network resolution the client switches to that unresolvable hostname and never bootstraps, so every integration test fails (also reproducible on main). Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/workflows/dotnet.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 147ef80..e786d4f 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -14,6 +14,9 @@ jobs: DB_CONN_STR: ${{ vars.DB_CONN_STR }} DB_USERNAME: ${{ vars.DB_USERNAME }} DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + # The CI Capella cluster advertises a private-endpoint alternate address that + # GitHub runners cannot resolve; use the nodes' default (public) hostnames. + Couchbase__NetworkResolution: default steps: - uses: actions/checkout@v7 - name: Check Memory Free