From 5dc5be10839ecdcfa0eaa8a4044d246fadb7a614 Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Thu, 8 Feb 2024 14:21:01 -0800 Subject: [PATCH] Create a CI workflow that will report build and unit test failures Change-Id: I71e23e2562607cfc011bb8f184521610aa81223b --- .github/workflows/CI.yml | 82 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a9b676170d..e18de745b8 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -6,14 +6,80 @@ on: branches: ["release/9.1", "develop", "master", "feature/PubSub"] workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: - build: + debug_build_and_test: + env: + CROWDIN_API_KEY: ${{ secrets.FLEX_CROWDIN_API }} + name: Build Debug and run Tests runs-on: windows-latest - steps: - - name: Checkout Files - uses: actions/checkout@v3 + steps: + - name: Checkout Files + uses: actions/checkout@v4 + id: checkout + + - name: Download 461 targeting pack + uses: suisei-cn/actions-download-file@818d6b7dc8fe73f2f924b6241f2b1134ca1377d9 # 1.6.0 + id: downloadfile # Remember to give an ID if you need the output filename + with: + url: "https://download.microsoft.com/download/F/1/D/F1DEB8DB-D277-4EF9-9F48-3A65D4D8F965/NDP461-DevPack-KB3105179-ENU.exe" + target: public/ + + - name: Install targeting pack + shell: cmd + working-directory: public + run: NDP461-DevPack-KB3105179-ENU.exe /q + + - name: Setup dotnet + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 2.1.x + 3.1.x + 5.0.x + + - name: Prepare for build + shell: cmd + working-directory: Build + run: build64.bat /t:WriteNonlocalDevelopmentPropertiesFile + + - name: Build Debug and run tests + id: build_and_test + shell: powershell + run: | + cd Build + .\build64.bat /t:remakefw-jenkins /p:action=test /p:desktopNotAvailable=true ^| tee-object -FilePath build.log - - name: Build and Test - shell: cmd - working-directory: Build - run: build64.bat /t:remakefw /p:action=test \ No newline at end of file + - name: Scan Debug Build Output + shell: powershell + working-directory: Build + run: | + $results = Select-String -Path "build.log" -Pattern "^\s*[1-9][0-9]* Error\(s\)" + if ($results) { + foreach ($result in $results) { + Write-Host "Found errors in build.log $($result.LineNumber): $($result.Line)" -ForegroundColor red + } + exit 1 + } else { + Write-Host "No errors found" -ForegroundColor green + exit 0 + } + + - name: Capture Test Results + shell: powershell + working-directory: Build + run: .\NUnitReport /a ^| tee-object -FilePath test-results.log + + - name: Report Test Results + uses: sillsdev/fw-nunitreport-action@v1.0.0 + with: + log-path: Build/test-results.log + token: ${{ secrets.GITHUB_TOKEN }} + + - uses: actions/upload-artifact@v4 + with: + name: build-logs + path: Build/*.log