WIP Update: to SkiaSharp 3.116.1 #6952
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ '**' ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
linuxBuild: | |
runs-on: ubuntu-latest | |
steps: | |
# Workaround to provide additional free space. | |
# https://github.com/actions/virtual-environments/issues/2840 | |
- name: Clear space | |
run: | | |
sudo rm -rf /opt/ghc | |
sudo rm -rf "/usr/local/share/boost" | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
# Cache Nugets | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.nuget/packages/* | |
!/.nuget/packages/Mapsui* | |
key: ${{ runner.os }}-nuget19-${{ hashFiles('Directory.Packages.props') }} | |
restore-keys: | | |
${{ runner.os }}-nuget19- | |
- name: Setup NuGet.exe for use with actions | |
uses: NuGet/setup-nuget@v2 | |
with: | |
nuget-version: latest | |
- name: Setup .NET 9 SDK | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
9.0.x | |
# Open JDK | |
- name: Install Open JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'microsoft' | |
java-version: '11' | |
# Android SDK Install | |
- name: Set up Android SDK | |
uses: android-actions/setup-android@v3 | |
with: | |
cmdline-tools-version: '8512546' | |
- name: Install workloads android wasm-tools wasm-tools-net8 maui-android | |
run: dotnet workload install android wasm-tools wasm-tools-net8 maui-android | |
- name: Install Uno Check | |
run: dotnet tool install -g Uno.Check | |
- name: Uno Check | |
run: uno-check -v --ci --non-interactive --fix --skip androidemulator | |
- name: Restore dependencies | |
run: dotnet restore Mapsui.Linux.slnf | |
- name: Build Mapsui.Linux.slnf | |
run: dotnet build --no-restore --configuration Debug Mapsui.Linux.slnf | |
# Run Tests | |
- name: Run Mapsui.Tests | |
run: dotnet test Tests/Mapsui.Tests/bin/Debug/net8.0/Mapsui.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Nts.Tests | |
run: dotnet test Tests/Mapsui.Nts.Tests/bin/Debug/net8.0/Mapsui.Nts.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Rendering.Skia.Tests | |
run: dotnet test Tests/Mapsui.Rendering.Skia.Tests/bin/Debug/net8.0/Mapsui.Rendering.Skia.Tests.dll --blame-hang-timeout:60s | |
# Release Build | |
- name: Build Linux packages | |
run: dotnet pack /p:RestorePackages=true /p:Configuration=Release /p:Version=$(git describe --tags) Mapsui.Linux.slnf --output Artifacts | |
- name: Upload packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nupkg.linux | |
path: Artifacts/*.nupkg | |
macBuild: | |
# macos-latest is currently macos-13 | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
# Cache Nugets | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.nuget/packages/* | |
!/.nuget/packages/Mapsui* | |
key: ${{ runner.os }}-nuget19-${{ hashFiles('Directory.Packages.props') }} | |
restore-keys: | | |
${{ runner.os }}-nuget19- | |
- name: Setup NuGet.exe for use with actions | |
uses: NuGet/setup-nuget@v2 | |
with: | |
nuget-version: latest | |
- name: Set up Xcode 16 | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '16' | |
# .Net 9 update | |
- name: Setup .NET 9 SDK | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
9.0.x | |
- name: install maui macos android ios maccatalyst wasm-tools wasm-tools-net8 | |
run: dotnet workload install maui macos android ios maccatalyst wasm-tools wasm-tools-net8 | |
- name: Install Uno Check | |
run: dotnet tool install -g Uno.Check | |
- name: Uno Check | |
run: uno-check -v --ci --non-interactive --fix --skip xcode --skip androidemulator --skip androidsdk | |
- name: Restore dependencies Mapsui.Mac | |
run: dotnet restore Mapsui.Mac.slnf | |
# Samples Build | |
- name: Mapsui.Samples.Avalonia | |
run: dotnet build --no-restore --configuration Debug Samples/Avalonia/Mapsui.Samples.Avalonia.Desktop/Mapsui.Samples.Avalonia.Desktop.csproj | |
- name: Build Mapsui.Samples.Droid | |
run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Droid/Mapsui.Samples.Droid.csproj | |
- name: Build Mapsui.Samples.iOS | |
run: dotnet build --configuration Debug -r iossimulator-x64 --self-contained Samples/Mapsui.Samples.iOS/Mapsui.Samples.iOS.csproj | |
# Samples Uno WinUI | |
#- name: Mapsui.Samples.Uno.WinUI.Mobile | |
# run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Mobile/Mapsui.Samples.Uno.WinUI.Mobile.csproj | |
#- name: Mapsui.Samples.Uno.WinUI.Skia.Gtk | |
# run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Skia.Gtk/Mapsui.Samples.Uno.WinUI.Skia.Gtk.csproj | |
#- name: Mapsui.Samples.Uno.WinUI.Skia.Linux.FrameBuffer | |
# run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Skia.Linux.FrameBuffer/Mapsui.Samples.Uno.WinUI.Skia.Linux.FrameBuffer.csproj | |
#- name: Mapsui.Samples.Uno.WinUI.Skia.WPF | |
# run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Skia.WPF/Mapsui.Samples.Uno.WinUI.Skia.WPF.csproj | |
#- name: Mapsui.Samples.Uno.WinUI.Wasm | |
# run: dotnet build --no-restore --configuration Debug Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Wasm/Mapsui.Samples.Uno.WinUI.Wasm.csproj | |
#- name: Mapsui.Samples.Uno.WinUI.Windows | |
# run: dotnet build --no-restore --configuration Debug /p:Platform=x64 Samples/Mapsui.Samples.Uno.WinUI/Mapsui.Samples.Uno.WinUI.Windows/Mapsui.Samples.Uno.WinUI.Windows.csproj | |
# Builds that need XCode 14.0 | |
# This works on Real Mac Devices but not on Github Actions, disable it for now (this is run on the Windows build) | |
#- name: Setup Xcode version 14.0 | |
# uses: maxim-lobanov/setup-xcode@v1.6.0 | |
# with: | |
# xcode-version: '14.0' | |
# Build Tests | |
- name: Build Mapsui.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Tests/Mapsui.Tests.csproj | |
- name: Build Mapsui.Nts.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Nts.Tests/Mapsui.Nts.Tests.csproj | |
- name: Build Mapsui.Rendering.Skia.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Rendering.Skia.Tests/Mapsui.Rendering.Skia.Tests.csproj | |
# Run Tests | |
- name: Run Mapsui.Tests | |
run: dotnet test Tests/Mapsui.Tests/bin/Debug/net8.0/Mapsui.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Nts.Tests | |
run: dotnet test Tests/Mapsui.Nts.Tests/bin/Debug/net8.0/Mapsui.Nts.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Rendering.Skia.Tests | |
run: dotnet test Tests/Mapsui.Rendering.Skia.Tests/bin/Debug/net8.0/Mapsui.Rendering.Skia.Tests.dll --blame-hang-timeout:60s | |
# Release Build | |
- name: Build Mapsui | |
run: dotnet pack --no-restore --configuration Release Mapsui/Mapsui.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.Rendering.Skia | |
run: dotnet pack --no-restore --configuration Release Mapsui.Rendering.Skia/Mapsui.Rendering.Skia.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.Tiling | |
run: dotnet pack --no-restore --configuration Release Mapsui.Tiling/Mapsui.Tiling.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.Nts | |
run: dotnet pack --no-restore --configuration Release Mapsui.Nts/Mapsui.Nts.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.ArcGIS | |
run: dotnet pack --no-restore --configuration Release Mapsui.ArcGIS/Mapsui.ArcGIS.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.Extensions | |
run: dotnet pack --no-restore --configuration Release Mapsui.Extensions/Mapsui.Extensions.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.UI.Android | |
run: dotnet pack --no-restore --configuration Release Mapsui.UI.Android/Mapsui.UI.Android.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Build Mapsui.UI.iOS | |
run: dotnet pack --no-restore --configuration Release Mapsui.UI.iOS/Mapsui.UI.iOS.csproj -o Artifacts -p:PackageVersion=$(git describe --tags) | |
- name: Upload packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nupkg.mac | |
path: Artifacts/*.nupkg | |
winBuild: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
filter: tree:0 | |
# Cache Nugets | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.nuget/packages/* | |
!/.nuget/packages/Mapsui* | |
key: ${{ runner.os }}-nuget19-${{ hashFiles('Directory.Packages.props') }} | |
restore-keys: | | |
${{ runner.os }}-nuget19- | |
# .Net 8 update | |
- name: Setup .NET 9 SDK | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: | | |
9.0.x | |
# Java Sdk install 11 | |
- name: Install Open JDK 11 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'microsoft' # open jdk | |
java-version: '11' | |
- name: Setup NuGet.exe for use with actions | |
uses: NuGet/setup-nuget@v2 | |
with: | |
nuget-version: latest | |
- name: install maui macos android ios maccatalyst wasm-tools wasm-tools-net8 | |
run: dotnet workload install maui macos android ios maccatalyst wasm-tools wasm-tools-net8 | |
- name: Install Uno Check | |
run: dotnet tool install -g Uno.Check | |
- name: Uno Check | |
run: uno-check -v --ci --non-interactive --fix --skip vswin --skip androidemulator --skip androidsdk --skip psexecpolicy | |
- name: Restore dependencies (dotnet) | |
run: dotnet restore Mapsui.sln | |
- name: Run dotnet format | |
run: | | |
dotnet format whitespace Mapsui.sln --verbosity normal --verify-no-changes | |
dotnet format style Mapsui.sln --verbosity normal --verify-no-changes | |
# The analyzers still have errors be we are close to fixing all of them | |
# dotnet format analyzers Mapsui.sln --verbosity normal --verify-no-changes | |
# Test Build | |
- name: Mapsui.Nts.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Nts.Tests/Mapsui.Nts.Tests.csproj | |
- name: Mapsui.Rendering.Skia.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Rendering.Skia.Tests/Mapsui.Rendering.Skia.Tests.csproj | |
- name: Mapsui.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.Tests/Mapsui.Tests.csproj | |
- name: Mapsui.UI.Maui.Tests | |
run: dotnet build --no-restore --configuration Debug Tests/Mapsui.UI.Maui.Tests/Mapsui.UI.Maui.Tests.csproj | |
# Run Tests | |
- name: Run Mapsui.Tests | |
run: dotnet test Tests/Mapsui.Tests/bin/Debug/net8.0/Mapsui.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Nts.Tests | |
run: dotnet test Tests/Mapsui.Nts.Tests/bin/Debug/net8.0/Mapsui.Nts.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.Rendering.Skia.Tests | |
run: dotnet test Tests/Mapsui.Rendering.Skia.Tests/bin/Debug/net8.0/Mapsui.Rendering.Skia.Tests.dll --blame-hang-timeout:60s | |
- name: Run Mapsui.UI.Maui.Tests | |
run: dotnet test Tests/Mapsui.UI.Maui.Tests/bin/Debug/net8.0-windows10.0.19041.0/Mapsui.UI.Maui.Tests.dll --blame-hang-timeout:60s | |
# Release Build | |
- name: Build nuget packages | |
run: dotnet pack Mapsui.sln --configuration Release /p:Version=$(git describe --tags) -o Artifacts | |
- name: Cleanup | |
run: git clean -fx -d -e Artifacts | |
# Change Project References to nuget package references in samples | |
- name: nuget ProjectReferences to PackageReferences | |
shell: pwsh | |
run: | | |
./Scripts/SamplesMapsuiNugetReferences.ps1 $(git describe --tags) | |
- name: Restore dependencies (dotnet) | |
run: dotnet restore Mapsui.sln | |
# Samples Build | |
- name: Mapsui.Samples | |
run: dotnet build --no-restore --configuration Debug Mapsui.sln | |
# Publishing | |
- name: Upload packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nupkg.win | |
path: Artifacts/*.nupkg |