From 9095361db3e2fc4691ce3328ca1f64c940dfbf15 Mon Sep 17 00:00:00 2001 From: Kevin Hahn Date: Fri, 7 Jun 2024 14:44:39 -0600 Subject: [PATCH] add fw lite workflow to output builds and run tests. Exclude fw lite stuff from lexbox-api.yaml workflow and don't run fw lite tests as part of lexbox. --- .github/workflows/develop-api.yaml | 16 ++++--- .github/workflows/fw-lite.yaml | 70 ++++++++++++++++++++++++++++++ .github/workflows/lexbox-api.yaml | 3 +- frontend/viewer/package.json | 4 ++ 4 files changed, 85 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/fw-lite.yaml diff --git a/.github/workflows/develop-api.yaml b/.github/workflows/develop-api.yaml index 9a2d3ed01..974beea8b 100644 --- a/.github/workflows/develop-api.yaml +++ b/.github/workflows/develop-api.yaml @@ -2,19 +2,21 @@ name: Develop API CI/CD on: workflow_dispatch: push: - paths: - - 'backend/**' + paths: &paths + - 'backend/LexBoxApi/**' + - 'backend/LexCore/**' + - 'backend/LexData/**' + - 'backend/LfClassicData/**' + - 'backend/MiniLcm/**' + - 'backend/SyncReverserProxy/**' + - 'backend/Testing/**' - '.github/workflows/lexbox-api.yaml' - '.github/workflows/deploy.yaml' - 'deployment/lexbox-deployment.yaml' branches: - develop pull_request: - paths: - - 'backend/**' - - '.github/workflows/lexbox-api.yaml' - - '.github/workflows/deploy.yaml' - - 'deployment/lexbox-deployment.yaml' + paths: *paths branches: - develop diff --git a/.github/workflows/fw-lite.yaml b/.github/workflows/fw-lite.yaml new file mode 100644 index 000000000..e078f1759 --- /dev/null +++ b/.github/workflows/fw-lite.yaml @@ -0,0 +1,70 @@ +name: FieldWorks Lite +on: + workflow_dispatch: + push: + paths: &paths + - 'backend/FwDataMiniLcmBridge/**' + - 'backend/harmony/**' + - 'backend/LcmCrdt/**' + - 'backend/LocalWebApp/**' + - 'backend/MiniLcm/**' + - 'frontend/viewer/**' + - '.github/workflows/fw-lite.yaml' + branches: + - develop + pull_request: + paths: *paths + branches: + - develop + +jobs: + build-app: + name: Build FW Lite + timeout-minutes: 20 + runs-on: unutbu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.x' + - uses: actions/setup-node@v4 + with: + node-version-file: './frontend/package.json' + - name: Dotnet build + working-directory: backend/LocalWebApp + run: dotnet build --configuration Release + - name: Dotnet test + working-directory: backend/LcmCrdt.Tests + run: dotnet test --configuration Release --logger:"xunit;LogFileName={assembly}.results.xml" --results-directory ./test-results + - name: Publish test results + uses: EnricoMi/publish-unit-test-result-action@8885e273a4343cd7b48eaa72428dea0c3067ea98 # v2.14.0 + if: always() + with: + check_name: FW Lite Unit Tests + files: ./backend/LcmCrdt.Tests/test-results/*.xml + - name: Build viewer + working-directory: frontend/viewer + run: | + corepack enable + pnpm install + pnpm run build-app + + - name: Publish linux + working-directory: backend/LocalWebApp + run: dotnet publish -r linux-x64 -o ./publish/linux + - name: Publish osx + working-directory: backend/LocalWebApp + run: dotnet publish -r osx-x64 -o ./publish/osx + - name: Publish win + working-directory: backend/LocalWebApp + run: dotnet publish -r win-x64 -o ./publish/win + - name: Upload artifacts + # uploading in one artifact as there's a lot of duplication between builds so compression goes far + uses: actions/upload-artifact@v4 + with: + name: fw-lite + if-no-files-found: error + path: backend/LocalWebApp/publish/* diff --git a/.github/workflows/lexbox-api.yaml b/.github/workflows/lexbox-api.yaml index aecbedc84..372ab865e 100644 --- a/.github/workflows/lexbox-api.yaml +++ b/.github/workflows/lexbox-api.yaml @@ -53,13 +53,14 @@ jobs: - name: Dotnet build run: dotnet build - name: Unit tests + working-directory: backend/Testing run: dotnet test --logger:"xunit;LogFileName={assembly}.results.xml" --results-directory ./test-results --filter "Category!=Integration" --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 + files: ./backend/Testing/test-results/*.xml - name: Upload test results if: always() uses: actions/upload-artifact@v4 diff --git a/frontend/viewer/package.json b/frontend/viewer/package.json index 75798fdc3..7d7c82806 100644 --- a/frontend/viewer/package.json +++ b/frontend/viewer/package.json @@ -1,6 +1,10 @@ { "name": "viewer", "private": true, + "packageManager": "pnpm@8.15.1", + "engines": { + "node": ">=20" + }, "version": "1.0.0", "type": "module", "main": "dist-web-component/viewer.js",