From 68950dd7f1ad0d17535a8c62939e2250a852fc8c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 1 Jun 2026 13:26:04 +0000 Subject: [PATCH 1/3] Run FwHeadless unit tests in CI Enable the previously-commented test step in lexbox-fw-headless.yaml, pointing it at Testing.csproj where the actual FwHeadless test classes live, scoped via --filter "FullyQualifiedName~FwHeadless". https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE --- .github/workflows/lexbox-fw-headless.yaml | 29 +++++++++++------------ 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/lexbox-fw-headless.yaml b/.github/workflows/lexbox-fw-headless.yaml index afbebff790..2517ad8e21 100644 --- a/.github/workflows/lexbox-fw-headless.yaml +++ b/.github/workflows/lexbox-fw-headless.yaml @@ -52,21 +52,20 @@ jobs: dotnet-version: '10.x' - name: Dotnet build run: dotnet build backend/FwHeadless/FwHeadless.csproj - # TODO: Write FwHeadless unit tests, probably based on existing sync tests - # - name: Unit tests - # run: dotnet test backend/FwHeadless/FwHeadless.csproj --logger:"xunit;LogFileName={assembly}.results.xml" --results-directory ./test-results --filter "Category!=Integration&Category!=FlakyIntegration" --blame-hang-timeout 10m - # - name: Publish unit test results - # uses: EnricoMi/publish-unit-test-result-action@8885e273a4343cd7b48eaa72428dea0c3067ea98 # v2.14.0 - # if: always() - # with: - # check_name: C# Unit Tests - # files: ./test-results/*.xml - # - name: Upload test results - # if: always() - # uses: actions/upload-artifact@v4 - # with: - # name: dotnet-unit-test-results - # path: ./test-results + - name: Unit tests + run: dotnet test backend/Testing/Testing.csproj --logger:"xunit;LogFileName={assembly}.results.xml" --results-directory ./test-results --filter "Category!=Integration&Category!=FlakyIntegration&FullyQualifiedName~FwHeadless" --blame-hang-timeout 10m + - name: Publish unit test results + uses: EnricoMi/publish-unit-test-result-action@8885e273a4343cd7b48eaa72428dea0c3067ea98 # v2.14.0 + if: always() + with: + check_name: C# FwHeadless Unit Tests + files: ./test-results/*.xml + - name: Upload test results + if: always() + uses: actions/upload-artifact@v4 + with: + name: dotnet-fw-headless-unit-test-results + path: ./test-results - name: Docker meta id: meta From c000170e26ebf09dd503abdb0d0299fcf7af1e65 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 1 Jun 2026 13:43:42 +0000 Subject: [PATCH 2/3] Enable postgres service for FwHeadless test job MediaFileServiceTests in Testing.FwHeadless require a PostgreSQL instance on port 5433. The service was commented out alongside the test step it served; both need to be active together. https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE --- .github/workflows/lexbox-fw-headless.yaml | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/lexbox-fw-headless.yaml b/.github/workflows/lexbox-fw-headless.yaml index 2517ad8e21..41aa95be3c 100644 --- a/.github/workflows/lexbox-fw-headless.yaml +++ b/.github/workflows/lexbox-fw-headless.yaml @@ -23,21 +23,21 @@ jobs: runs-on: ubuntu-latest # postgres db is for automated tests - # services: - # postgres: - # image: postgres:15-alpine - # env: - # POSTGRES_PASSWORD: 972b722e63f549938d07bd8c4ee5086c - # POSTGRES_DB: lexbox-tests - # # Set health checks to wait until postgres has started - # options: >- - # --health-cmd pg_isready - # --health-interval 10s - # --health-timeout 5s - # --health-retries 5 - # ports: - # # Maps tcp port 5432 on service container to the host - # - 5433:5432 + services: + postgres: + image: postgres:15-alpine + env: + POSTGRES_PASSWORD: 972b722e63f549938d07bd8c4ee5086c + POSTGRES_DB: lexbox-tests + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + # Maps tcp port 5432 on service container to the host + - 5433:5432 env: # https://docs.docker.com/develop/develop-images/build_enhancements/ From e91f7a42c03afadaf9ac93dcdb11713d31c0eb37 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 1 Jun 2026 15:41:52 +0000 Subject: [PATCH 3/3] Trigger develop-fw-headless on FwHeadless test changes - Add backend/Testing/FwHeadless/** to the trigger paths so changes isolated to the FwHeadless tests run the workflow that now executes them. - Fix a pre-existing typo: backend/FwLiteProjectSync/FwLiteProjectSync/** was matching nothing on disk; the correct path is backend/FwLite/FwLiteProjectSync/**. https://claude.ai/code/session_01AMmw7JB5F7vBpQhum6mtKE --- .github/workflows/develop-fw-headless.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/develop-fw-headless.yaml b/.github/workflows/develop-fw-headless.yaml index 6037f51a20..e9e238740b 100644 --- a/.github/workflows/develop-fw-headless.yaml +++ b/.github/workflows/develop-fw-headless.yaml @@ -8,9 +8,10 @@ on: - 'backend/FwLite/FwDataMiniLcmBridge/**' - 'backend/FwLite/LcmCrdt/**' - 'backend/FwLite/MiniLcm/**' - - 'backend/FwLiteProjectSync/FwLiteProjectSync/**' + - 'backend/FwLite/FwLiteProjectSync/**' - 'backend/LexCore/**' - 'backend/LexData/**' + - 'backend/Testing/FwHeadless/**' - '.github/workflows/lexbox-fw-headless.yaml' - '.github/workflows/deploy.yaml' - 'deployment/base/fw-headless-deployment.yaml' @@ -23,9 +24,10 @@ on: - 'backend/FwLite/FwDataMiniLcmBridge/**' - 'backend/FwLite/LcmCrdt/**' - 'backend/FwLite/MiniLcm/**' - - 'backend/FwLiteProjectSync/FwLiteProjectSync/**' + - 'backend/FwLite/FwLiteProjectSync/**' - 'backend/LexCore/**' - 'backend/LexData/**' + - 'backend/Testing/FwHeadless/**' - '.github/workflows/lexbox-fw-headless.yaml' - '.github/workflows/deploy.yaml' - 'deployment/base/fw-headless-deployment.yaml'