Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
210 commits
Select commit Hold shift + click to select a range
5cdf07c
Make grouped friend notifications Transient and not important (#36620)
SupDos Feb 8, 2026
239951e
Fix seeking to previous bookmark not working when song is playing (#3…
Joehuu Feb 8, 2026
7263551
Improve handling of account registration errors (#36600)
bdach Feb 8, 2026
bb04a18
Localise "lounge" & "quick play" in `ButtonSystem` (#36220)
diquoks Feb 8, 2026
0a4497d
Fix local beatmap metadata not being cleared when previously selecte…
Joehuu Feb 9, 2026
bb83f3d
Fix unreliable async loading due to incorrect single-child assumption
peppy Feb 9, 2026
0198203
Allow binding left/right modifier keys separately for gameplay bindin…
failaip12 Feb 9, 2026
60d98f0
Improve adjusting mods settings values with keyboard (#36090)
diquoks Feb 9, 2026
efd4d12
Add info about damage dealt to ranked play user state (#36627)
minetoblend Feb 9, 2026
f39b310
Add missing wait step to fix flaky test in `TestSceneModPresetColumn`
peppy Feb 9, 2026
cae8d3f
Update production endpoints in an attempt to fix Russian player conne…
peppy Feb 9, 2026
b613c1d
Merge pull request #36635 from peppy/update-production-endpoints
bdach Feb 9, 2026
a1136c3
Update framework (#36637)
peppy Feb 9, 2026
dbce888
Rename `Ruleset.GetHitResults{ -> ForDisplay}()`
bdach Feb 9, 2026
3678ea0
Publicise `Ruleset.GetValidHitResults()`
bdach Feb 9, 2026
15c49a7
Adjust contract of `Ruleset.GetValidHitResults()` to always enumerate…
bdach Feb 9, 2026
655d725
Perform extra checks when loading rulesets (#36641)
bdach Feb 10, 2026
c59e5bf
Merge pull request #36639 from bdach/actually-all-valid-hit-results
peppy Feb 10, 2026
56bc80f
Update resources
peppy Feb 10, 2026
50426eb
Refactor UpdateableTeamFlag for use on team overlay (#36286)
LiquidPL Feb 10, 2026
5afd6c6
Add user role to `MultiplayerRoomUser` (#36652)
bdach Feb 11, 2026
860427e
Fix corner radius for user tag glow (#36659)
netineko Feb 13, 2026
94d9de9
Add explanations for scoring mode used in ranked & total score toolti…
bdach Feb 13, 2026
87f323a
Update resources
peppy Feb 15, 2026
2f459dd
Preserve bookmarks when creating a new difficulty from scratch (#36675)
64ArthurAraujo Feb 16, 2026
810edeb
Fix extra lives in Easy mod potentially getting reapplied during game…
bdach Feb 16, 2026
8e26cf4
Restore previous beatmap when leaving scoped mode (#36582)
LiquidPL Feb 16, 2026
fc4e297
Use directory of last-selected sample as initial directory in sample …
bdach Feb 16, 2026
42bf254
Fix osu! editor composer scale handles not updating correctly when se…
bdach Feb 16, 2026
94cec71
Prevent tagging beatmaps when played with conversion mods (#36684)
imvanni Feb 17, 2026
71583bc
Add basic support for `scoreentry-` skinnable text
peppy Feb 17, 2026
6e03d5b
Show initial key placeholder / trigger name using non-skinned font
peppy Feb 17, 2026
cc9a5ed
Update resources
peppy Feb 17, 2026
86ab507
Use default overlap of 1
peppy Feb 17, 2026
7445efa
Ensure state resets back to initial display on rewind
peppy Feb 17, 2026
9fa7812
Merge pull request #36687 from peppy/legacy-key-counter-skinnable-font
bdach Feb 18, 2026
f15e086
Add "spin" keyword for menu cursor rotation
peppy Feb 18, 2026
83587e2
Add ability for `LoadingLayer` to block all keyboard input
peppy Feb 18, 2026
93d1a61
Migrate playlist freestyle select screen to use `SongSelectV2`
peppy Feb 17, 2026
fb8c228
Add test coverage of actual user flows involving freestyle select screen
peppy Feb 18, 2026
110f11f
Fade out header line for now to avoid visual overlap
peppy Feb 18, 2026
d33a6d5
Add ability for `LoadingLayer` to block all keyboard input
peppy Feb 18, 2026
4854473
Migrate multiplayer freestyle select screen to use `SongSelectV2`
peppy Feb 18, 2026
25d6308
Merge pull request #36695 from peppy/loading-layer-block-non-positional
bdach Feb 18, 2026
e15cb08
Privatise setter
bdach Feb 18, 2026
1153d17
Disallow use of scoping button when at freestyle song select
peppy Feb 18, 2026
f9f927f
Disable footer buttons on freestyle song select
bdach Feb 19, 2026
9ae9964
Merge pull request #36694 from peppy/freestyle-select-update
bdach Feb 19, 2026
d3b4836
Merge branch 'master' into multiplayer-freestyle-select
bdach Feb 19, 2026
69c2747
Merge pull request #36696 from peppy/multiplayer-freestyle-select
bdach Feb 19, 2026
1e8b9a7
Adjust nightcore sample playback to not stop randomly and be closer t…
bdach Feb 20, 2026
c144cf1
Fix reversing straight perfect curve sliders positioning them weirdly…
64ArthurAraujo Feb 20, 2026
29a39cb
Fix spectator player cells not having initial shadow edge effect set …
Joehuu Feb 21, 2026
d139f59
Update resources
peppy Feb 22, 2026
a09489d
Move transformation logic local to transient drawable
peppy Feb 23, 2026
4916c87
Move toolbar button text local to single usage in `ToolbarUserButton`
peppy Feb 23, 2026
f39615a
Move spacing local to usages
peppy Feb 23, 2026
e2cbfb9
Merge pull request #36738 from peppy/user-button-animation-fix
bdach Feb 24, 2026
efc9a27
Remove no longer used class
peppy Feb 19, 2026
cb12d35
Combine old classes to provide better starting point for migration
peppy Feb 19, 2026
fabce18
Remove `V2` suffix from migrated classes
peppy Feb 20, 2026
5602281
Merge pull request #36745 from peppy/song-select-cleanup
bdach Feb 24, 2026
ccb0224
Attempt to fix "copy labels from issues" workflow permissions again
bdach Feb 24, 2026
5b1d4ce
Merge pull request #36746 from bdach/fix-thing-again
peppy Feb 24, 2026
ee8d990
Rename one more missed song select v2 class
peppy Feb 24, 2026
99ab245
Tidy up how `SettingsSubsection` headings are created
peppy Feb 25, 2026
cb597c4
Fix flow animating its display initially when it shouldn't
peppy Feb 25, 2026
047ea7c
Fix hidden settings flow content still being interactive
peppy Feb 25, 2026
0dfb362
Use `HotkeyDisplay` for toolbar buttons (#36750)
netineko Feb 25, 2026
32d1040
Merge pull request #36751 from peppy/fix-hidden-controls-settings
bdach Feb 25, 2026
5174d8b
Fix changing normal sample bank via keyboard hotkeys not updating add…
bdach Feb 25, 2026
7e2771c
Improve usability of sample bank toggles (#36753)
bdach Feb 26, 2026
5131b18
Remove redundant footer from `TestScenePlaylistsRoomSubscreen`
LiquidPL Feb 27, 2026
2e659a7
Merge pull request #36767 from LiquidPL/cleanup-online-play-tests
peppy Feb 27, 2026
c72b641
Add pool type to matchmaking room invited event (#36765)
smoogipoo Feb 27, 2026
105342e
Migrate sheared overlay tests to `ScreenTestScene` (#36736)
LiquidPL Feb 27, 2026
9c489aa
Use better text structure for `ScreenshotSaved` notification (#36701)
diquoks Feb 28, 2026
b88cba0
Refactor `TestSceneScreenFooter` to test entire `OsuScreen`s (#36718)
LiquidPL Mar 1, 2026
033e13c
Fix song select navigation with page up/down (#36293)
linusgenz Mar 1, 2026
9c8dfaf
Apply more sanity checks when handling files from archives
bdach Mar 2, 2026
ee9f8d5
Fix custom tooltip formats no longer displaying in settings
peppy Mar 3, 2026
d27d0f4
Switch multiplayer to use song select v2 (#36747)
peppy Mar 3, 2026
d60a12a
Fix ordering of skins not working as expected (#36772)
peppy Mar 3, 2026
b0759ff
Fix song select carousel state capture
peppy Mar 3, 2026
c372f9b
Standardise display order of playcount / favourites
Joehuu Mar 3, 2026
b831bcb
Change beatmap card play count and date icon to solid to match web
Joehuu Mar 3, 2026
7dfbab2
Add nominations statistic to beatmap info overlay
Joehuu Mar 3, 2026
564b6eb
Add tooltips to beatmap info overlay statistics
Joehuu Mar 3, 2026
521a40d
Remove now unused footer buttons
peppy Feb 24, 2026
a7e6286
Fix a few remaining references to old song select
peppy Feb 25, 2026
f20d182
Update filter matching tests to be independent of old song select cla…
peppy Feb 25, 2026
ce542b0
Move components only used by beatmap set overlay local to namespace
peppy Feb 25, 2026
54a1417
Move leaderboards classes to gameplay namespace for now
peppy Feb 25, 2026
1a8d285
Remove all song select v1 files
peppy Feb 25, 2026
7e7421e
Update `TestSceneDeleteLocalScore` to use newer leaderboard
peppy Feb 25, 2026
b4f4063
Add special not regarding collection dropdown
peppy Feb 25, 2026
c28c649
Move v2 files to final location
peppy Feb 25, 2026
b1044b6
Update framework
peppy Mar 3, 2026
317be21
Final attempt to make copy labels work
peppy Mar 3, 2026
2539bd9
Merge pull request #36794 from peppy/fix-tooltips-not-displaying-custom
bdach Mar 3, 2026
d748470
Merge pull request #36795 from peppy/carousel-scrollbar-state-capture
bdach Mar 3, 2026
d37f594
Merge pull request #36796 from Joehuu/standardise-play-favourite-order
bdach Mar 3, 2026
e64e0f0
Fix beatmap set overlay not showing user tags at all
bdach Mar 3, 2026
2f96e96
Migrate realm populating online lookup source to use helper method fo…
bdach Mar 3, 2026
65b4913
Move constant closer to helper
bdach Mar 3, 2026
d9e1822
Add bool flag for checking tag vote threshold & utilise as required
bdach Mar 3, 2026
1aa42a7
Fix code quality
bdach Mar 3, 2026
a028f0b
Fix loose spacers at top of leaderboard score context menu (#36799)
bdach Mar 3, 2026
f74a21c
Merge branch 'master' into song-select-v1-salute
bdach Mar 4, 2026
43af89f
Remove outdated xmldoc
bdach Mar 4, 2026
4c87378
Merge pull request #36752 from peppy/song-select-v1-salute
bdach Mar 4, 2026
9b55e1d
Only show user tags above threshold by default
bdach Mar 4, 2026
459d5e8
Merge branch 'master' into tags-broken
peppy Mar 4, 2026
a0ecbd7
Merge pull request #36798 from bdach/tags-broken
peppy Mar 4, 2026
ae03262
Unimplement legacy compatibility method (#36812)
smoogipoo Mar 4, 2026
cab50e9
Reduce online user list panel churn on initial display (#36811)
peppy Mar 4, 2026
45945e3
Return tooltips to footer buttons on `MultiplayerMatchSongSelect` (#3…
diquoks Mar 5, 2026
28a18f7
Use web localisation on `LeaderboardScopeSelector` to match `osu-web`…
diquoks Mar 5, 2026
bb28936
Update resources
peppy Mar 5, 2026
4389745
Fix subscription leak from composer reloads (#36828)
bdach Mar 5, 2026
6b10ef8
Disable presenting scores in online song selects (#36826)
bdach Mar 5, 2026
b76a7e1
Refactor `ShearedButton` to allow easier relative sizing (#36802)
LiquidPL Mar 5, 2026
ba2ae32
Show first two slider repeats with the rest of the combo in Freeze Fr…
bdach Mar 6, 2026
e911217
Fix crash when clicking panels during recycling (#36457)
eeliogata Mar 6, 2026
c1555af
Only play nightcore hat sounds when tick rate is a multiple of 2 (#36…
eeliogata Mar 6, 2026
8fe63ad
Adjust padding and text size in editor inspector (#36843)
peppy Mar 6, 2026
04767f4
Allow editor 100% background dim (#36847)
peppy Mar 6, 2026
f9e863a
Remove "copy labels from linked issues" github workflow (#36854)
bdach Mar 6, 2026
482d31d
Fix "no tablet" settings display not updating after language change (…
peppy Mar 6, 2026
b46656e
Fix loading spinner not being centered correctly (#36849)
peppy Mar 6, 2026
0d74983
Fix rotation of certain objects breaking change states (#36852)
bdach Mar 6, 2026
16bc1de
Allow changing addition bank button state when objects are selected e…
bdach Mar 6, 2026
0fd0bd3
Consider comments in wiki's front matter YAML (#36758)
CloneWith Mar 6, 2026
0988552
Implement ranked play (#36819)
smoogipoo Mar 6, 2026
de9cf75
Fix `LoadingLayer` centering
peppy Mar 6, 2026
c4402e9
Fix potential crash due to handling scores in leaderboard post-dispos…
peppy Mar 6, 2026
14ae231
Fix a few flaky tests
peppy Mar 7, 2026
e3a0464
Update a few sample playback usages to use new helper method
peppy Mar 7, 2026
7227afe
Fix missed using statement
peppy Mar 8, 2026
e4f7bd5
Fix score delete dialog not using user-facing rank terminology (#36861)
Joehuu Mar 9, 2026
a344408
Fix possible exception (#36895)
smoogipoo Mar 9, 2026
3b86d15
Mute warning samples during stage fast forwards (#36894)
smoogipoo Mar 9, 2026
a7860dd
Fix timeline selection box showing rotation handles
bdach Mar 9, 2026
3378e60
Merge pull request #36898 from bdach/oops
peppy Mar 9, 2026
277d53a
Adjust all selected hold notes if they have the same StartTime and Du…
64ArthurAraujo Mar 10, 2026
14bde85
Fix song select navigation with home/end keys (#36879)
Rudicito Mar 10, 2026
caffc72
Do not forcibly log out user if user retrieval fails with a server er…
bdach Mar 10, 2026
321e698
Improve support for import & export flows on Android via using system…
bdach Mar 10, 2026
054ae29
Extract user overlay actions button component (#36236)
LiquidPL Mar 10, 2026
1b48894
Localise some more `PopupDialog`s (#36890)
diquoks Mar 10, 2026
9105fc1
Fix editor not updating titlebar with new difficulty name after renam…
peppy Mar 10, 2026
14743a1
Fix "Deselect all" mods button becoming enabled when system mods are …
peppy Mar 10, 2026
87b37fd
Fix volume slider title text horizontal scaling on some languages (#3…
MayoCollector Mar 10, 2026
ce571e3
Ranked Play: Fix casing inconsistency in results screen (#36931)
smoogipoo Mar 11, 2026
4c0657f
Ranked Play: Add countdown timer to all screens (#36930)
smoogipoo Mar 11, 2026
d0d5d97
Add replay / spectator mode scrolling text back (#36911)
peppy Mar 11, 2026
390fc52
Fix avatar sometimes showing as guest in beatmap detail comment conta…
cdwcgt Mar 11, 2026
94c9f16
Update editor hitsound icons with new designs from Adarin (#36940)
peppy Mar 12, 2026
365b88b
Ensure folder migration screen uses a blank background to avoid reada…
peppy Mar 12, 2026
28fbb83
Fix Simplified Rhythm mod breaking diffcalc when applied to some maps…
bdach Mar 12, 2026
2380fcd
Reuse existing triangles in `Triangles` background (#36951)
EVAST9919 Mar 13, 2026
fd66d7c
Localise some strings on `SecondFactorAuthForm` (#36961)
diquoks Mar 14, 2026
ed905b7
Add models for new tournament-related multiplayer operations (#36953)
bdach Mar 14, 2026
39912e0
Fix weird variable naming
peppy Mar 14, 2026
73644d8
Attempt to fix mod output including build output
peppy Mar 16, 2026
a996261
Update lots of packages (#36996)
peppy Mar 16, 2026
f237348
Fix Discord playtime counter resetting on every activity change (#36973)
SupDos Mar 17, 2026
780ce26
Notify of or set the beatmap at explicit times (#36993)
smoogipoo Mar 17, 2026
f1f753f
Only run deploy actions for tags without suffixes
peppy Mar 17, 2026
f97d77c
Slight transtion adjust to now playing overlay appear/disappear
peppy Mar 18, 2026
e0ccdfa
Fix cancelling a restart for update still quitting the game after one…
peppy Mar 18, 2026
ab2daf6
Adjust maximum aspect ratio setting for tablets to match stupid wide …
peppy Mar 18, 2026
f84caf1
Remove duplicated `CollectionDropdown` class (#37020)
peppy Mar 18, 2026
978e380
Improve song select audio transitions (#37022)
peppy Mar 18, 2026
a85c128
Fix dashboard overlay eagerly requesting global user presence (#37029)
smoogipoo Mar 18, 2026
18d4ba5
Tooling updates (#37031)
bdach Mar 18, 2026
bd30f70
Update framework
peppy Mar 18, 2026
ed6ec8b
Debounce user offline notifications (#37028)
smoogipoo Mar 18, 2026
b98cf42
Don't show progress in quit notification if no progress has been made…
peppy Mar 19, 2026
43c53b5
Various tournament-minded improvements for multiplayer (#37000)
bdach Mar 20, 2026
22b8a8e
Increase precision for the Accuracy Challenge mod (#37048)
evilldev Mar 20, 2026
1016bca
Keep any stateful dropdown menu open on click (#37021)
peppy Mar 21, 2026
c5dd958
Fix timing points sometimes not showing up in the editor timeline whe…
minetoblend Mar 22, 2026
f3c9dd7
Fix song select search not matching results when punctuation marks su…
simaocaixas Mar 23, 2026
d4a4acd
Fix mania hold notes dimming unexpectedly (#37008)
smoogipoo Mar 23, 2026
f738079
Fix compatibility export using platform-dependent line endings (#37051)
antfaia Mar 23, 2026
95648a3
Fix editor background taking too long to load with certain storyboard…
peppy Mar 23, 2026
18747e1
Fix storyboard / beatmap backgrounds being rendered in background of …
peppy Mar 24, 2026
021e448
Prepare for l10n of tournament client (#36827)
CloneWith Mar 24, 2026
98debc8
Show multiplayer/playlist header content inside title wedge (#37089)
peppy Mar 25, 2026
86ef145
Switch online play screens to new header (#37074)
LiquidPL Mar 25, 2026
31b81fd
Implement `/savelog` chat command (#37093)
bdach Mar 25, 2026
bddfc99
Clamp grid size when exporting for stable (#37094)
peppy Mar 25, 2026
bca5438
Warn macOS users if game is not in location which can be automaticall…
hesitling Mar 25, 2026
4a476e1
Don't show replay overlay text when cinema mod is active (#37092)
peppy Mar 25, 2026
dca9396
Add warning display when player loading is paused due to user interac…
peppy Mar 25, 2026
2b587c8
Second pass audio transition changes (#37107)
peppy Mar 26, 2026
d57e951
Initial plan
Copilot Mar 26, 2026
9aed214
Merge remote-tracking branch 'upstream/master' into copilot/sync-with…
Copilot Mar 26, 2026
9b6d9d5
Fix fork test ModelManagerPerformanceTest to use NUnit 4 constraint-b…
Copilot Mar 26, 2026
9eca512
Merge upstream ppy/osu (197 commits), resolve conflicts, fix test com…
Copilot Mar 26, 2026
b776793
Add Android performance optimizations for low-latency gameplay
Copilot Mar 26, 2026
98d9ab1
Reset fork to clean upstream with Android optimizations
Copilot Mar 26, 2026
48c1297
Fix security issues in native bridges: add Vulkan error checking, bou…
Copilot Mar 26, 2026
2607762
Changes before error encountered
Copilot Mar 26, 2026
f53737c
Fix Android build error: cast int to GameMode enum for comparison
Copilot Mar 26, 2026
aecf470
Use explicit int cast for GameMode comparison to be clear about Andro…
Copilot Mar 26, 2026
aa50738
Add MAILBOX present mode detection and Oboe audio offset auto-suggest
Copilot Mar 26, 2026
0047d6b
Fix Oboe native sample rate, add audio routing hints, tighten CMake s…
Copilot Mar 26, 2026
e38b05a
Add Retry(3) to flaky CI tests that timeout under loaded runners
Copilot Mar 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 8 additions & 11 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,25 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
"version": "2023.3.3",
"version": "2025.2.3",
"commands": [
"jb"
]
},
"nvika": {
"version": "4.0.0",
"commands": [
"nvika"
]
],
"rollForward": false
},
"codefilesanity": {
"version": "0.0.37",
"commands": [
"CodeFileSanity"
]
],
"rollForward": false
},
"ppy.localisationanalyser.tools": {
"version": "2025.1208.0",
"commands": [
"localisation"
]
],
"rollForward": false
}
}
}
}
2 changes: 1 addition & 1 deletion .github/workflows/_diffcalc_processor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:

steps:
- name: Checkout diffcalc-sheet-generator
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
path: ${{ inputs.id }}
repository: 'smoogipoo/diffcalc-sheet-generator'
Expand Down
77 changes: 36 additions & 41 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ concurrency:

permissions:
contents: read # to fetch code (actions/checkout)
security-events: write # for reporting InspectCode issues

jobs:
inspect-code:
name: Code Quality
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
cache: false

- name: Restore Tools
run: dotnet tool restore
Expand All @@ -28,13 +28,13 @@ jobs:
run: dotnet restore osu.Desktop.slnf

- name: Restore inspectcode cache
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ github.workspace }}/inspectcode
key: inspectcode-${{ hashFiles('.config/dotnet-tools.json', '.github/workflows/ci.yml', 'osu.sln*', 'osu*.slnf', '.editorconfig', '.globalconfig', 'CodeAnalysis/*', '**/*.csproj', '**/*.props') }}

- name: Dotnet code style
run: dotnet build -c Debug -warnaserror osu.Desktop.slnf -p:EnforceCodeStyleInBuild=true --no-restore
run: dotnet build -c Debug -warnaserror osu.Desktop.slnf -p:EnforceCodeStyleInBuild=true

Copilot AI Mar 26, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow already runs dotnet restore osu.Desktop.slnf earlier, but this build step no longer passes --no-restore. That will trigger an unnecessary restore and slow CI. Consider re-adding --no-restore here to keep the pipeline efficient.

Suggested change
run: dotnet build -c Debug -warnaserror osu.Desktop.slnf -p:EnforceCodeStyleInBuild=true
run: dotnet build --no-restore -c Debug -warnaserror osu.Desktop.slnf -p:EnforceCodeStyleInBuild=true

Copilot uses AI. Check for mistakes.

- name: CodeFileSanity
run: |
Expand All @@ -50,10 +50,14 @@ jobs:
exit $exit_code

- name: InspectCode
run: dotnet jb inspectcode $(pwd)/osu.Desktop.slnf --no-build --output="inspectcodereport.xml" --caches-home="inspectcode" --verbosity=WARN

- name: NVika
run: dotnet nvika parsereport "${{github.workspace}}/inspectcodereport.xml" --treatwarningsaserrors
uses: JetBrains/ReSharper-InspectCode@v0.11
with:
# this is WTF tier but if you don't specify *both* of these the defaults assume `build: true`
build: false
no-build: true
solution: ./osu.Desktop.slnf
caches-home: inspectcode
verbosity: WARN

test:
name: Test
Expand All @@ -69,88 +73,79 @@ jobs:
# - { prettyname: macOS, fullname: macos-latest }
- { prettyname: Linux, fullname: ubuntu-latest }
threadingMode: ['SingleThread', 'MultiThreaded']
suite: ['Visual', 'NonVisual', 'Rulesets']
timeout-minutes: 120
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
cache: false

- name: Compile
run: dotnet build -c Debug -warnaserror osu.Desktop.slnf

- name: Test
shell: bash
run: |
if [ "${{ matrix.suite }}" == "Visual" ]; then
dotnet test osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll --logger "trx;LogFileName=TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}-${{matrix.suite}}.trx" -- NUnit.ConsoleOut=0 --filter "FullyQualifiedName~osu.Game.Tests.Visual"
elif [ "${{ matrix.suite }}" == "NonVisual" ]; then
dotnet test osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll --logger "trx;LogFileName=TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}-${{matrix.suite}}.trx" -- NUnit.ConsoleOut=0 --filter "FullyQualifiedName!~osu.Game.Tests.Visual"
else
dotnet test osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu.Game.Rulesets.Osu.Tests.dll \
osu.Game.Rulesets.Taiko.Tests/bin/Debug/**/osu.Game.Rulesets.Taiko.Tests.dll \
osu.Game.Rulesets.Catch.Tests/bin/Debug/**/osu.Game.Rulesets.Catch.Tests.dll \
osu.Game.Rulesets.Mania.Tests/bin/Debug/**/osu.Game.Rulesets.Mania.Tests.dll \
osu.Game.Tournament.Tests/bin/Debug/**/osu.Game.Tournament.Tests.dll \
Templates/**/*.Tests/bin/Debug/**/*.Tests.dll \
--logger "trx;LogFileName=TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}-${{matrix.suite}}.trx" \
-- NUnit.ConsoleOut=0
fi
run: >
dotnet test
osu.Game.Tests/bin/Debug/**/osu.Game.Tests.dll
osu.Game.Rulesets.Osu.Tests/bin/Debug/**/osu.Game.Rulesets.Osu.Tests.dll
osu.Game.Rulesets.Taiko.Tests/bin/Debug/**/osu.Game.Rulesets.Taiko.Tests.dll
osu.Game.Rulesets.Catch.Tests/bin/Debug/**/osu.Game.Rulesets.Catch.Tests.dll
osu.Game.Rulesets.Mania.Tests/bin/Debug/**/osu.Game.Rulesets.Mania.Tests.dll
osu.Game.Tournament.Tests/bin/Debug/**/osu.Game.Tournament.Tests.dll
Templates/**/*.Tests/bin/Debug/**/*.Tests.dll
--logger "trx;LogFileName=TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}.trx"
--
NUnit.ConsoleOut=0

# Attempt to upload results even if test fails.
# https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#always
- name: Upload Test Results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
if: ${{ always() }}
with:
name: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}}-${{matrix.suite}}
path: ${{github.workspace}}/TestResults/TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}-${{matrix.suite}}.trx
name: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}}
path: ${{github.workspace}}/TestResults/TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}.trx

build-only-android:
name: Build only (Android)
runs-on: windows-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Setup JDK 11
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: microsoft
java-version: 11

- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
cache: false

- name: Install .NET workloads
run: dotnet workload install android wasi-experimental
run: dotnet workload install android

- name: Compile
run: dotnet build -c Debug osu.Android.slnf

build-only-ios:
name: Build only (iOS)
runs-on: macos-15
continue-on-error: true
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"
cache: false

- name: Install .NET Workloads
run: dotnet workload install ios
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Pack and nuget
on:
push:
tags:
- '*'
- '*.*.*'
- '!*-*'

jobs:
notify_pending_production_deploy:
Expand Down Expand Up @@ -43,14 +44,14 @@ jobs:
environment: production
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set artifacts directory
id: artifactsPath
run: echo "::set-output name=nuget_artifacts::${{github.workspace}}/artifacts"

- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: "8.0.x"

Expand All @@ -76,7 +77,7 @@ jobs:
dotnet pack -c Release Templates /p:Version=${{ github.ref_name }} -o ${{steps.artifactsPath.outputs.nuget_artifacts}}

- name: Upload artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: osu
path: |
Expand Down
19 changes: 0 additions & 19 deletions .github/workflows/pull-request-copy-labels.yml

This file was deleted.

Loading
Loading