Merge pull request #911 from FUSEEProjectTeam/dependabot/nuget/housek… #1253
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: CI | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
- housekeeping | |
pull_request: | |
branches: | |
- master | |
- develop | |
- housekeeping | |
workflow_dispatch: | |
jobs: | |
lint: | |
runs-on: windows-latest | |
name: Linting | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: dotnet restore solution | |
run: dotnet restore Fusee.sln | |
- name: dotnet format solution | |
run: dotnet format style Fusee.sln | |
- name: Commiting changes | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Linting | |
tests: | |
name: Tests | |
needs: [lint] | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 'windows-latest', 'ubuntu-latest', 'macos-latest' ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: AssetStorage | |
run: dotnet test -c Release src/Tests/AssetStorage/Desktop/Fusee.Tests.AssetStorage.Desktop.csproj | |
- name: Math | |
run: dotnet test -c Release src/Tests/Math/Core/Fusee.Tests.Math.Core.csproj | |
- name: Scene Components | |
run: dotnet test -c Release src/Tests/Scene/Components/Fusee.Tests.Scene.Components.csproj | |
- name: Serialization V1 | |
run: dotnet test -c Release src/Tests/Serialization/V1/Fusee.Tests.Serialization.V1.csproj | |
- name: Xene | |
run: dotnet test -c Release src/Tests/Xene/Fusee.Tests.Xene.csproj | |
- name: Xirkit | |
run: dotnet test -c Release src/Tests/Xirkit/Core/Fusee.Tests.Xirkit.Core.csproj | |
- name: Xirkit Nested Access | |
run: dotnet test -c Release src/Tests/Xirkit/NestedAccess/Fusee.Tests.Xirkit.NestedAccess.csproj | |
rendertests: | |
name: Render Tests | |
needs: [lint] | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 'windows-latest' ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Render image compare | |
run: dotnet run -c Release --project src/Tests/Render/Desktop/Fusee.Tests.Render.Desktop.csproj | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: Rendertests | |
path: | | |
bin/Release/Tests/Render/Desktop/net8.0/*.png | |
bin/Release/Tests/Render/Desktop/net8.0/References/*.png | |
builddesktop: | |
needs: [tests, rendertests] | |
name: Build Desktop | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 'windows-latest', 'ubuntu-latest', 'macos-latest' ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Build Release-Desktop | |
run: dotnet build -c Release-Desktop Fusee.sln | |
- name: Upload Player-Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: fusee-desktop-${{ matrix.os }}-player | |
path: bin/Release/Player/Desktop/ | |
- name: Upload Tool-Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: fusee-desktop-${{ matrix.os }}-tools | |
path: bin/Release/Tools/ | |
# - name: Upload Example-Artifacts | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: fusee-desktop-${{ matrix.os }}-examples | |
# path: bin/Release/Examples/**/Desktop/ | |
buildnuget: | |
needs: [tests, rendertests] | |
name: Build NuGet | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
NUGET_BUILD: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 'windows-latest' ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
with: | |
vs-version: '[17.9,]' | |
msbuild-architecture: x64 | |
# - name: Setup dotnet macos workload | |
# run: dotnet workload install macos | |
# - name: Build Release-Blazor | |
# run: dotnet build -c Release-Blazor Fusee.sln | |
# - name: Setup wasm-tools workload | |
# run: dotnet workload install wasm-tools | |
# - name: Publish F.E.Player.Blazor | |
# run: dotnet publish -c Release -p:PublishProfile=FolderProfileRelease src/Engine/Player/Blazor/Fusee.Engine.Player.Blazor.csproj | |
# - name: Build F.T.B.Blazorpatch | |
# run: dotnet build -c Release src/Tools/Build/Blazorpatch/Fusee.Tools.Build.Blazorpatch.csproj | |
# - name: Patch Blazor | |
# run: dotnet bin/Release/Tools/Build/Blazorpatch/net8.0/Fusee.Tools.Build.Blazorpatch.dll -p bin/Release/Player/Blazor/net8.0/publish/wwwroot -t All | |
- name: Build F.E.Player.Desktop | |
run: dotnet publish -c Release -p:PublishProfile=win-x64-release src\Engine\Player\Desktop\Fusee.Engine.Player.Desktop.csproj | |
- name: Pack Fusee.sln NuGet | |
run: dotnet pack Fusee.sln -c Release-NuGet | |
- name: Pack F.B.I.Android | |
run: msbuild src\Base\Imp\Android\Fusee.Base.Imp.Android.csproj -t:restore,pack -p:Configuration=Release | |
- name: Pack F.E.I.Graphics.Android | |
run: msbuild src\Engine\Imp\Graphics\Android\Fusee.Engine.Imp.Graphics.Android.csproj -t:restore,pack -p:Configuration=Release | |
- name: Pack Core Metapackage | |
run: dotnet pack dis\NuGet\Core\Core.csproj -c Release -o bin\Release\nuget | |
- name: Pack Desktop Metapackage | |
run: dotnet pack dis\NuGet\Desktop\Desktop.csproj -c Release -o bin\Release\nuget | |
- name: Pack Android Metapackage | |
run: msbuild dis\NuGet\Android\Android.csproj -t:restore,pack -p:Configuration=Release | |
- name: Pack Fusee.Template.dotnet | |
run: dotnet pack dis\DnTemplate\DnTemplate.csproj -c Release -o bin\Release\nuget | |
- name: Pack VSTemplate | |
run: msbuild dis\VSTemplate\VSTemplate.sln -t:restore,build -p:Configuration=Release | |
- name: Pack Blender Addon | |
run: tar -c -a -f bin\Release\nuget\io_export_fus.zip -C bin\Release\Tools\CmdLine\net8.0\BlenderScripts\addons * | |
- name: Upload NuGet-Atrifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: fusee-nuget-${{ matrix.os }} | |
path: | | |
bin/Release/nuget/ | |
dis/VSTemplate/VSTemplate/bin/Release/ProjectTemplates/CSharp/1033/Fusee.Template.VS.zip | |
dis/VSTemplate/VSIX/bin/Release/Fusee.Template.VS.Installer.vsix | |
buildblazor: | |
needs: [tests, rendertests] | |
name: Build Blazor | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ 'ubuntu-latest', 'macos-latest' ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Setup dotnet macos workload | |
run: dotnet workload install macos | |
- name: Build Release-Blazor | |
run: dotnet build -c Release-Blazor Fusee.sln | |
- name: Setup workloads | |
run: | | |
dotnet workload install wasm-tools | |
dotnet workload install wasm-tools-net7 | |
- name: Publish F.E.Player.Blazor | |
run: dotnet publish -c Release -p:PublishProfile=FolderProfileRelease src/Engine/Player/Blazor/Fusee.Engine.Player.Blazor.csproj | |
# - name: Build F.T.B.Blazorpatch | |
# run: dotnet build -c Release src/Tools/Build/Blazorpatch/Fusee.Tools.Build.Blazorpatch.csproj | |
# - name: Patch Blazor | |
# run: dotnet bin/Release/Tools/Build/Blazorpatch/net8.0/Fusee.Tools.Build.Blazorpatch.dll -p bin/Release/Player/Blazor/net8.0/publish/wwwroot -t All | |
- name: Upload Player-Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: fusee-blazor-${{ matrix.os }}-player | |
path: bin/Release/Player/Blazor/net8.0/publish/ | |
buildandroid: | |
name: Build Android | |
needs: [tests, rendertests] | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup-Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '11' | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
with: | |
vs-version: '[17.9,]' | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Build with MSBuild | |
run: msbuild Fusee.sln -r -p:Configuration=Release-Android | |
codeanalysis: | |
name: CodeQL | |
needs: [builddesktop] | |
env: | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
DOTNET_NOLOGO: true | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
language: [ 'csharp', 'python' ] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Setup .NET 8.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 8.0.x | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
with: | |
languages: ${{ matrix.language }} | |
- name: Build Release-Desktop | |
run: dotnet build -c Release-Desktop Fusee.sln | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v2 |