Skip to content

Commit 95f3a05

Browse files
committed
Merged master.
2 parents 031710d + b86d9aa commit 95f3a05

2,972 files changed

Lines changed: 184524 additions & 294025 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/CI.yml

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,72 @@
11
name: CI
22
on: [push, pull_request]
3+
34
jobs:
45
build:
56
strategy:
67
matrix:
78
# Supported platforms: https://docs.github.com/en/actions/reference/runners/github-hosted-runners
8-
os: [windows-latest, windows-11-arm, ubuntu-24.04-arm, ubuntu-latest]
9+
os:
10+
- windows-latest
11+
- windows-11-arm
12+
- ubuntu-24.04-arm
13+
- ubuntu-latest
14+
- macos-26 # choose a macOS version with Xcode that is supported by https://github.com/dotnet/macios/releases
915
fail-fast: false # Don't cancel one when another fails
1016
runs-on: ${{ matrix.os }}
1117
steps:
12-
- uses: actions/checkout@v5
13-
- uses: actions/setup-dotnet@v4
18+
- uses: actions/checkout@v7
19+
- uses: actions/setup-dotnet@v5
1420
with:
1521
dotnet-version: '10.x'
16-
- if: ${{ runner.os != 'Windows' }}
17-
run: sudo sh ./Configure.${{ runner.os }}.Application.sh
18-
- run: dotnet build
22+
- uses: jakoch/install-vulkan-sdk-action@v1
23+
if: contains(matrix.os, 'macos')
24+
with:
25+
optional_components: com.lunarg.vulkan.ios
26+
- name: Build desktop only
27+
run: dotnet build
28+
- name: Install MAUI workload (if not Linux ARM)
29+
if: "!(contains(matrix.os, 'ubuntu') && contains(matrix.os, 'arm'))" # .NET Android SDK doesn't support Linux ARM64: https://github.com/dotnet/android/issues/11184
30+
run: |
31+
dotnet workload install ${{ case(!contains(matrix.os, 'ubuntu'), 'maui', 'maui-android') }} # Linux doesn't support iOS therefore full MAUI workload
32+
- name: Install Android dependencies for Windows ARM
33+
if: "contains(matrix.os, 'windows') && contains(matrix.os, 'arm')"
34+
run:
35+
dotnet build "Projects/Mobile" -t:InstallAndroidDependencies -f net10.0-android -p BuildMobile=true,AcceptAndroidSdkLicenses=True
36+
- name: Get Xcode version from Apple workload
37+
if: contains(matrix.os, 'macos')
38+
id: ios-version
39+
run: |
40+
# NOTE: .NET for iOS/tvOS/MacCatalyst checks the major.minor version of Xcode for version validation.
41+
# Meanwhile, the available property for us (_RecommendedXcodeVersion) may include a build number like 26.6.1.
42+
# We strip any patch component so setup-xcode uses semver range matching (bare "26.6" matches any 26.6.x).
43+
# If we passed the full 3-component version like "26.6.1", Node.js's semver.satisfies would require
44+
# an exact patch match, which could fail if the runner only has "26.6.0" (or vice versa).
45+
# This property is more reliable than trying to derive the Xcode version from the workload version number, since the mapping is
46+
# not always 1:1 (e.g. iOS 26.5 → Xcode 26.6), see https://github.com/dotnet/macios/issues/25818
47+
XCODE_VERSION=$(dotnet build "Projects/Mobile" -f net10.0-ios -getProperty:_RecommendedXcodeVersion 2>/dev/null | tail -n 1) # Note the project used should have OutputType=Exe, because OutputType=Library has a different version returned
48+
echo "Recommended Xcode version is $XCODE_VERSION"
49+
XCODE_VERSION=$(echo "$XCODE_VERSION" | cut -d. -f1-2) # Keep only major.minor
50+
echo "xcode-version=${XCODE_VERSION}" >> "$GITHUB_OUTPUT"
51+
- uses: maxim-lobanov/setup-xcode@v1
52+
if: contains(matrix.os, 'macos')
53+
with:
54+
xcode-version: ${{ steps.ios-version.outputs.xcode-version }}
55+
- name: Build all (if not Linux ARM)
56+
if: "!(contains(matrix.os, 'ubuntu') && contains(matrix.os, 'arm'))"
57+
run: dotnet build -p BuildMobile=true
1958
test:
2059
strategy:
2160
matrix:
22-
os: [windows-latest, ubuntu-latest]
61+
os: [windows-latest, ubuntu-latest, macos-latest] # can't include ARM because we don't have ImGui native libraries
2362
fail-fast: false
2463
runs-on: ${{ matrix.os }}
2564
steps:
26-
- uses: actions/checkout@v5
27-
- uses: actions/setup-dotnet@v4
65+
- uses: actions/checkout@v7
66+
- uses: actions/setup-dotnet@v5
2867
with:
2968
dotnet-version: '10.x'
30-
- if: ${{ runner.os != 'Windows' }}
31-
run: sudo sh ./Configure.${{ runner.os }}.Application.sh
69+
- uses: jakoch/install-vulkan-sdk-action@v1
70+
if: contains(matrix.os, 'macos')
3271
# GitHub Actions runners have no GPU so skip Integration tests
33-
- run: dotnet test Nu/Nu.Tests --filter TestCategory!="Integration"
72+
- run: dotnet test Nu/Nu.Tests --filter TestCategory!="Integration"

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,16 @@ Thumbs.db
2121
#######################
2222
*.suo
2323
*.tws
24+
*.csproj.user
25+
*.fsproj.user
2426

2527
#####################
2628
# Build Directories #
2729
#####################
2830
bin/
2931
obj/
3032
refinement/
33+
piped/
3134
.vs/
3235

3336
#########

0 commit comments

Comments
 (0)