diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d7e224d15..c521c0da9d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,13 +23,6 @@ jobs: matrix: # Using macos-12 because we need Xcode 13.3 or later to build Sentry.Samples.Maui. (macos-latest currently points at macos-11 which uses Xcode 13.2) os: [ubuntu-latest, windows-latest, macos-12] - include: - - os: ubuntu-latest - slnf: SentryLinux.slnf - - os: windows-latest - slnf: SentryWindows.slnf - - os: macos-12 - slnf: SentryMac.slnf steps: - name: Checkout @@ -61,38 +54,29 @@ jobs: path: ~/.nuget/packages # We don't use a lockfile, so hash all files where we might be keeping tags # Workloads also get installed in the nuget packages cache, so if you modify workloads below, increment the number in the cache keys - key: ${{ runner.os }}-nuget+workloads2-${{ hashFiles('**/*.*proj', '**/*.props') }} - restore-keys: ${{ runner.os }}-nuget+workloads2 + key: ${{ runner.os }}-nuget+workloads3-${{ hashFiles('**/*.*proj', '**/*.props') }} + restore-keys: ${{ runner.os }}-nuget+workloads3 - # .NET Android workloads don't support Linux https://github.com/dotnet/sdk/issues/22411 + - name: Install .NET Workloads (Ubuntu) + if: startsWith(matrix.os, 'ubuntu') + run: 'dotnet workload install maui-android --temp-dir "${{ runner.temp }}"' - name: Install .NET Workloads (Windows) if: startsWith(matrix.os, 'windows') - run: dotnet workload install maui-android maui-windows + run: 'dotnet workload install maui-android maui-windows --temp-dir "${{ runner.temp }}"' - name: Install .NET Workloads (macOS) if: startsWith(matrix.os, 'macos') - run: dotnet workload install maui-android maui-ios maui-maccatalyst + run: 'dotnet workload install maui-android maui-ios maui-maccatalyst --temp-dir "${{ runner.temp }}"' - name: Build - run: dotnet build ${{ matrix.slnf }} -c Release /p:CopyLocalLockFileAssemblies=true + run: dotnet build -c Release /p:CopyLocalLockFileAssemblies=true - name: Test - run: dotnet test ${{ matrix.slnf }} -c Release --no-build -l GitHubActions -l "trx;LogFileName=${{ matrix.os }}-test-results.trx" - - # - name: Create Test Report - # uses: phoenix-actions/test-reporting@4b942144e31c4039ac808d9b29945864b628a574 - # # run this step even if previous step failed - # if: success() || failure() - # with: - # name: Unit Test Results (${{ matrix.os }}) - # path: '**/*.trx' - # reporter: dotnet-trx - # list-suites: 'failed' - # list-tests: 'failed' + run: dotnet test -c Release --no-build -l GitHubActions -l "trx;LogFileName=${{ matrix.os }}-test-results.trx" - name: Pack # Only pack in one build environment. We'll use macOS so we can build for ios/maccatalyst targets if: startsWith(matrix.os, 'macos') - run: dotnet pack ${{ matrix.slnf }} -c Release --no-build + run: dotnet pack -c Release --no-build - name: Upload Verify Results if: failure() diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 6cb31d9981..f26bcbc871 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -31,9 +31,13 @@ jobs: uses: actions/cache@v3 with: path: ~/.nuget/packages - ## we don't use a lockfile, so hash all files where we might be keeping tags - key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.*proj', '**/*.props') }} - restore-keys: ${{ runner.os }}-nuget + # We don't use a lockfile, so hash all files where we might be keeping tags + # Workloads also get installed in the nuget packages cache, so if you modify workloads below, increment the number in the cache keys + key: ${{ runner.os }}-nuget+workloads3-${{ hashFiles('**/*.*proj', '**/*.props') }} + restore-keys: ${{ runner.os }}-nuget+workloads3 + + - name: Install .NET Workloads (Ubuntu) + run: 'dotnet workload install maui-android --temp-dir "${{ runner.temp }}"' # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL @@ -42,10 +46,9 @@ jobs: languages: ${{ matrix.language }} - name: Build - # TODO: Won't run over code specific to Windows or macOS - # Prob best to use reusable workflows to have the setup shared with build.yml + # TODO: Prob best to use reusable workflows to have the setup shared with build.yml # https://docs.github.com/en/actions/using-workflows/reusing-workflows#creating-a-reusable-workflow - run: dotnet build SentryLinux.slnf + run: dotnet build - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v2 diff --git a/SentryLinux.slnf b/SentryLinux.slnf deleted file mode 100644 index 7dfe33d036..0000000000 --- a/SentryLinux.slnf +++ /dev/null @@ -1,48 +0,0 @@ -{ - "solution": { - "path": "Sentry.sln", - "projects": [ - "benchmarks\\Sentry.Benchmarks\\Sentry.Benchmarks.csproj", - "samples\\Sentry.Samples.AspNetCore.Basic\\Sentry.Samples.AspNetCore.Basic.csproj", - "samples\\Sentry.Samples.AspNetCore.Blazor.Wasm\\Sentry.Samples.AspNetCore.Blazor.Wasm.csproj", - "samples\\Sentry.Samples.AspNetCore.Grpc\\Sentry.Samples.AspNetCore.Grpc.csproj", - "samples\\Sentry.Samples.AspNetCore.Mvc\\Sentry.Samples.AspNetCore.Mvc.csproj", - "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", - "samples\\Sentry.Samples.AspNetCore5.Mvc\\Sentry.Samples.AspNetCore5.Mvc.csproj", - "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", - "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", - "samples\\Sentry.Samples.EntityFramework\\Sentry.Samples.EntityFramework.csproj", - "samples\\Sentry.Samples.GenericHost\\Sentry.Samples.GenericHost.csproj", - "samples\\Sentry.Samples.Google.Cloud.Functions\\Sentry.Samples.Google.Cloud.Functions.csproj", - "samples\\Sentry.Samples.Log4Net\\Sentry.Samples.Log4Net.csproj", - "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", - "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", - "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", - "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", - "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.AspNet\\Sentry.AspNet.csproj", - "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", - "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", - "src\\Sentry.Extensions.Logging\\Sentry.Extensions.Logging.csproj", - "src\\Sentry.Google.Cloud.Functions\\Sentry.Google.Cloud.Functions.csproj", - "src\\Sentry.Log4Net\\Sentry.Log4Net.csproj", - "src\\Sentry.NLog\\Sentry.NLog.csproj", - "src\\Sentry.Serilog\\Sentry.Serilog.csproj", - "src\\Sentry.Tunnel\\Sentry.Tunnel.csproj", - "src\\Sentry\\Sentry.csproj", - "test\\Sentry.AspNet.Tests\\Sentry.AspNet.Tests.csproj", - "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", - "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", - "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", - "test\\Sentry.EntityFramework.Tests\\Sentry.EntityFramework.Tests.csproj", - "test\\Sentry.Extensions.Logging.Tests\\Sentry.Extensions.Logging.Tests.csproj", - "test\\Sentry.Google.Cloud.Functions.Tests\\Sentry.Google.Cloud.Functions.Tests.csproj", - "test\\Sentry.Log4Net.Tests\\Sentry.Log4Net.Tests.csproj", - "test\\Sentry.NLog.Tests\\Sentry.NLog.Tests.csproj", - "test\\Sentry.Serilog.Tests\\Sentry.Serilog.Tests.csproj", - "test\\Sentry.Testing\\Sentry.Testing.csproj", - "test\\Sentry.Tests\\Sentry.Tests.csproj" - ] - } -} diff --git a/SentryMac.slnf b/SentryMac.slnf deleted file mode 100644 index 7a2300c84f..0000000000 --- a/SentryMac.slnf +++ /dev/null @@ -1,52 +0,0 @@ -{ - "solution": { - "path": "Sentry.sln", - "projects": [ - "benchmarks\\Sentry.Benchmarks\\Sentry.Benchmarks.csproj", - "samples\\Sentry.Samples.Android\\Sentry.Samples.Android.csproj", - "samples\\Sentry.Samples.AspNetCore.Basic\\Sentry.Samples.AspNetCore.Basic.csproj", - "samples\\Sentry.Samples.AspNetCore.Blazor.Wasm\\Sentry.Samples.AspNetCore.Blazor.Wasm.csproj", - "samples\\Sentry.Samples.AspNetCore.Grpc\\Sentry.Samples.AspNetCore.Grpc.csproj", - "samples\\Sentry.Samples.AspNetCore.Mvc\\Sentry.Samples.AspNetCore.Mvc.csproj", - "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", - "samples\\Sentry.Samples.AspNetCore5.Mvc\\Sentry.Samples.AspNetCore5.Mvc.csproj", - "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", - "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", - "samples\\Sentry.Samples.EntityFramework\\Sentry.Samples.EntityFramework.csproj", - "samples\\Sentry.Samples.GenericHost\\Sentry.Samples.GenericHost.csproj", - "samples\\Sentry.Samples.Google.Cloud.Functions\\Sentry.Samples.Google.Cloud.Functions.csproj", - "samples\\Sentry.Samples.Log4Net\\Sentry.Samples.Log4Net.csproj", - "samples\\Sentry.Samples.Maui\\Sentry.Samples.Maui.csproj", - "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", - "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", - "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", - "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", - "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.AspNet\\Sentry.AspNet.csproj", - "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", - "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", - "src\\Sentry.Extensions.Logging\\Sentry.Extensions.Logging.csproj", - "src\\Sentry.Google.Cloud.Functions\\Sentry.Google.Cloud.Functions.csproj", - "src\\Sentry.Log4Net\\Sentry.Log4Net.csproj", - "src\\Sentry.Maui\\Sentry.Maui.csproj", - "src\\Sentry.NLog\\Sentry.NLog.csproj", - "src\\Sentry.Serilog\\Sentry.Serilog.csproj", - "src\\Sentry.Tunnel\\Sentry.Tunnel.csproj", - "src\\Sentry\\Sentry.csproj", - "test\\Sentry.AspNet.Tests\\Sentry.AspNet.Tests.csproj", - "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", - "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", - "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", - "test\\Sentry.EntityFramework.Tests\\Sentry.EntityFramework.Tests.csproj", - "test\\Sentry.Extensions.Logging.Tests\\Sentry.Extensions.Logging.Tests.csproj", - "test\\Sentry.Google.Cloud.Functions.Tests\\Sentry.Google.Cloud.Functions.Tests.csproj", - "test\\Sentry.Log4Net.Tests\\Sentry.Log4Net.Tests.csproj", - "test\\Sentry.Maui.Tests\\Sentry.Maui.Tests.csproj", - "test\\Sentry.NLog.Tests\\Sentry.NLog.Tests.csproj", - "test\\Sentry.Serilog.Tests\\Sentry.Serilog.Tests.csproj", - "test\\Sentry.Testing\\Sentry.Testing.csproj", - "test\\Sentry.Tests\\Sentry.Tests.csproj" - ] - } -} diff --git a/SentryWindows.slnf b/SentryWindows.slnf deleted file mode 100644 index 7a2300c84f..0000000000 --- a/SentryWindows.slnf +++ /dev/null @@ -1,52 +0,0 @@ -{ - "solution": { - "path": "Sentry.sln", - "projects": [ - "benchmarks\\Sentry.Benchmarks\\Sentry.Benchmarks.csproj", - "samples\\Sentry.Samples.Android\\Sentry.Samples.Android.csproj", - "samples\\Sentry.Samples.AspNetCore.Basic\\Sentry.Samples.AspNetCore.Basic.csproj", - "samples\\Sentry.Samples.AspNetCore.Blazor.Wasm\\Sentry.Samples.AspNetCore.Blazor.Wasm.csproj", - "samples\\Sentry.Samples.AspNetCore.Grpc\\Sentry.Samples.AspNetCore.Grpc.csproj", - "samples\\Sentry.Samples.AspNetCore.Mvc\\Sentry.Samples.AspNetCore.Mvc.csproj", - "samples\\Sentry.Samples.AspNetCore.Serilog\\Sentry.Samples.AspNetCore.Serilog.csproj", - "samples\\Sentry.Samples.AspNetCore5.Mvc\\Sentry.Samples.AspNetCore5.Mvc.csproj", - "samples\\Sentry.Samples.Aws.Lambda.AspNetCoreServer\\Sentry.Samples.Aws.Lambda.AspNetCoreServer.csproj", - "samples\\Sentry.Samples.Console.Basic\\Sentry.Samples.Console.Basic.csproj", - "samples\\Sentry.Samples.Console.Customized\\Sentry.Samples.Console.Customized.csproj", - "samples\\Sentry.Samples.EntityFramework\\Sentry.Samples.EntityFramework.csproj", - "samples\\Sentry.Samples.GenericHost\\Sentry.Samples.GenericHost.csproj", - "samples\\Sentry.Samples.Google.Cloud.Functions\\Sentry.Samples.Google.Cloud.Functions.csproj", - "samples\\Sentry.Samples.Log4Net\\Sentry.Samples.Log4Net.csproj", - "samples\\Sentry.Samples.Maui\\Sentry.Samples.Maui.csproj", - "samples\\Sentry.Samples.ME.Logging\\Sentry.Samples.ME.Logging.csproj", - "samples\\Sentry.Samples.NLog\\Sentry.Samples.NLog.csproj", - "samples\\Sentry.Samples.Serilog\\Sentry.Samples.Serilog.csproj", - "src\\Sentry.AspNetCore.Grpc\\Sentry.AspNetCore.Grpc.csproj", - "src\\Sentry.AspNetCore\\Sentry.AspNetCore.csproj", - "src\\Sentry.AspNet\\Sentry.AspNet.csproj", - "src\\Sentry.DiagnosticSource\\Sentry.DiagnosticSource.csproj", - "src\\Sentry.EntityFramework\\Sentry.EntityFramework.csproj", - "src\\Sentry.Extensions.Logging\\Sentry.Extensions.Logging.csproj", - "src\\Sentry.Google.Cloud.Functions\\Sentry.Google.Cloud.Functions.csproj", - "src\\Sentry.Log4Net\\Sentry.Log4Net.csproj", - "src\\Sentry.Maui\\Sentry.Maui.csproj", - "src\\Sentry.NLog\\Sentry.NLog.csproj", - "src\\Sentry.Serilog\\Sentry.Serilog.csproj", - "src\\Sentry.Tunnel\\Sentry.Tunnel.csproj", - "src\\Sentry\\Sentry.csproj", - "test\\Sentry.AspNet.Tests\\Sentry.AspNet.Tests.csproj", - "test\\Sentry.AspNetCore.Grpc.Tests\\Sentry.AspNetCore.Grpc.Tests.csproj", - "test\\Sentry.AspNetCore.Tests\\Sentry.AspNetCore.Tests.csproj", - "test\\Sentry.DiagnosticSource.Tests\\Sentry.DiagnosticSource.Tests.csproj", - "test\\Sentry.EntityFramework.Tests\\Sentry.EntityFramework.Tests.csproj", - "test\\Sentry.Extensions.Logging.Tests\\Sentry.Extensions.Logging.Tests.csproj", - "test\\Sentry.Google.Cloud.Functions.Tests\\Sentry.Google.Cloud.Functions.Tests.csproj", - "test\\Sentry.Log4Net.Tests\\Sentry.Log4Net.Tests.csproj", - "test\\Sentry.Maui.Tests\\Sentry.Maui.Tests.csproj", - "test\\Sentry.NLog.Tests\\Sentry.NLog.Tests.csproj", - "test\\Sentry.Serilog.Tests\\Sentry.Serilog.Tests.csproj", - "test\\Sentry.Testing\\Sentry.Testing.csproj", - "test\\Sentry.Tests\\Sentry.Tests.csproj" - ] - } -} diff --git a/build.ps1 b/build.ps1 index 9400b36c82..1ebac8fcd0 100644 --- a/build.ps1 +++ b/build.ps1 @@ -2,9 +2,9 @@ $ErrorActionPreference = "Stop" $testLogger = if ($env:GITHUB_ACTIONS -eq "true") {"GitHubActions;report-warnings=false"} else {"console"} -dotnet test SentryWindows.slnf -c Release -l $testLogger ` +dotnet test -c Release -l $testLogger ` /p:CopyLocalLockFileAssemblies=true if ($LASTEXITCODE -ne 0) { exit 1 } -dotnet pack SentryWindows.slnf -c Release --no-build +dotnet pack -c Release --no-build if ($LASTEXITCODE -ne 0) { exit 1 } diff --git a/build.sh b/build.sh index 6fa03ede98..c705e6bcc2 100755 --- a/build.sh +++ b/build.sh @@ -8,11 +8,5 @@ if [ "$GITHUB_ACTIONS" == "true" ] testLogger="console" fi -case "$OSTYPE" in - darwin*) export Filter=SentryMac.slnf ;; - linux*) export Filter=SentryLinux.slnf ;; - *) echo Unsupported $OSTYPE && exit -1 ;; -esac - -dotnet test $Filter -c Release -l $testLogger \ +dotnet test -c Release -l $testLogger \ /p:CopyLocalLockFileAssemblies=true diff --git a/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj b/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj index d83bb06da0..4365463533 100644 --- a/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj +++ b/samples/Sentry.Samples.Maui/Sentry.Samples.Maui.csproj @@ -2,11 +2,13 @@ - net6.0-android;net6.0-windows10.0.19041.0 - net6.0-android;net6.0-ios;net6.0-maccatalyst + net6.0-android + $(TargetFrameworks);net6.0-windows10.0.19041.0 + $(TargetFrameworks);net6.0-ios;net6.0-maccatalyst Exe Sentry.Samples.Maui true diff --git a/src/Sentry/Sentry.csproj b/src/Sentry/Sentry.csproj index 5b7abb6bca..aca05fb0a2 100644 --- a/src/Sentry/Sentry.csproj +++ b/src/Sentry/Sentry.csproj @@ -1,9 +1,7 @@  - net6.0;net5.0;netcoreapp3.0;netstandard2.1;netstandard2.0;net461 - - $(TargetFrameworks);net6.0-android + net6.0;net5.0;netcoreapp3.0;netstandard2.1;netstandard2.0;net461;net6.0-android 9 false