Skip to content

WIP Update: to SkiaSharp 3.116.1 #6952

WIP Update: to SkiaSharp 3.116.1

WIP Update: to SkiaSharp 3.116.1 #6952

Workflow file for this run

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