name: Test on: push: branches: ["**"] paths: ["Elwig/**", "Tests/**", "Installer/Files/*.exe", ".gitea/workflows/test.yaml"] jobs: test: name: Run tests runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Check for Byte order marks shell: powershell run: | $pattern = [char]::ConvertFromUtf32(0xFEFF) $files = git grep -IEl "^$pattern" if ( $lastexitcode -ne 1 ) { echo "Files with BOM found:" echo $files exit 1 } else { echo "No files with BOM found" exit 0 } - name: Setup MSBuild uses: microsoft/setup-msbuild@v1.1 - name: Setup NuGet uses: nuget/setup-nuget@v1 - name: Restore NuGet packages shell: powershell run: $(& nuget restore Elwig.sln; $a=$lastexitcode) | findstr x*; exit $a - name: Build Elwig shell: powershell run: $(& msbuild -verbosity:quiet Elwig/Elwig.csproj -property:Configuration=Debug; $a=$lastexitcode) | findstr x*; exit $a - name: Build Tests shell: powershell run: $(& dotnet build Tests; $a=$lastexitcode) | findstr x*; exit $a - name: Run Tests shell: powershell run: | $env:PATH = "$(pwd)\Installer\Files;" + $env:PATH $(& dotnet test Tests --filter "FullyQualifiedName!~E2ETests"; $a=$lastexitcode) | findstr x*; exit $a