diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0da1f9636b..2a3b2fd978 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,6 +50,48 @@ jobs: 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@v2 + + - name: Install .NET 5.0.x + uses: actions/setup-dotnet@v1 + with: + dotnet-version: "5.0.x" + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1 + + - name: Build + run: msbuild osu.Android.slnf /restore /p:Configuration=Debug + + build-only-ios: + # While this workflow technically *can* run, it fails as iOS builds are blocked by multiple issues. + # See https://github.com/ppy/osu-framework/issues/4677 for the details. + # The job can be unblocked once those issues are resolved and game deployments can happen again. + if: false + name: Build only (iOS) + runs-on: macos-latest + timeout-minutes: 60 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install .NET 5.0.x + uses: actions/setup-dotnet@v1 + with: + dotnet-version: "5.0.x" + + # Contrary to seemingly any other msbuild, msbuild running on macOS/Mono + # cannot accept .sln(f) files as arguments. + # Build just the main game for now. + - name: Build + run: msbuild osu.iOS/osu.iOS.csproj /restore /p:Configuration=Debug + inspect-code: name: Code Quality runs-on: ubuntu-latest diff --git a/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs b/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs index 9562b41363..ab4e1b4457 100644 --- a/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs +++ b/osu.Game.Tests/Visual/Online/TestSceneChatOverlay.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net; using JetBrains.Annotations; using NUnit.Framework; using osu.Framework.Allocation; @@ -105,7 +106,7 @@ namespace osu.Game.Tests.Visual.Online } else { - getUser.TriggerFailure(new Exception()); + getUser.TriggerFailure(new WebException()); } return true; diff --git a/osu.Game/Beatmaps/BeatmapSetInfo.cs b/osu.Game/Beatmaps/BeatmapSetInfo.cs index 79cd8253f7..0c032e1482 100644 --- a/osu.Game/Beatmaps/BeatmapSetInfo.cs +++ b/osu.Game/Beatmaps/BeatmapSetInfo.cs @@ -117,7 +117,6 @@ namespace osu.Game.Beatmaps [JsonIgnore] public DateTimeOffset? LastUpdated => OnlineInfo.LastUpdated; - [NotMapped] [JsonIgnore] public BeatmapSetOnlineStatus Status { get; set; } = BeatmapSetOnlineStatus.None; diff --git a/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs b/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs index 6e43ac5504..fee3e56859 100644 --- a/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs +++ b/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs @@ -54,7 +54,7 @@ namespace osu.Game.Online.API.Requests.Responses [JsonProperty(@"accuracy")] private float overallDifficulty { get; set; } - public double Length => lengthInSeconds * 1000; + public double Length => TimeSpan.FromSeconds(lengthInSeconds).TotalMilliseconds; [JsonProperty(@"total_length")] private double lengthInSeconds { get; set; } @@ -86,7 +86,7 @@ namespace osu.Game.Online.API.Requests.Responses OnlineBeatmapID = OnlineID, Version = DifficultyName, // this is actually an incorrect mapping (Length is calculated as drain length in lazer's import process, see BeatmapManager.calculateLength). - Length = TimeSpan.FromSeconds(Length).TotalMilliseconds, + Length = Length, Status = Status, MD5Hash = Checksum, BeatmapSet = set,