1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-13 19:54:15 +08:00

More tooling updates & fixes (#37177)

## [Adjust CI test reporting to upstream action
changes](https://github.com/ppy/osu/commit/f736337b1acf311bf48fb8c39cae67c3f172608d)

It's been semi-broken since I bumped it a few weeks ago. Paper trail for
this is at https://github.com/dorny/test-reporter/issues/750, but to
TL;DR it: `dorny/test-reporter@>=v2.0.0` migrated from [creating new
check runs via the GitHub
API](https://docs.github.com/en/rest/checks/runs) to [job
summaries](https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-commands#adding-a-job-summary)
by default.

The main difference is that compared to check runs, job summaries do not
*appear to* require extra `GITHUB_TOKEN` permissions, but in exchange
are limited to the job that called it. This broke visibility of the test
reports because due to `GITHUB_TOKEN` permissions foibles the test
reporter was running in a separate workflow.

I see migrating as a plus here, since:

- The visibility of results is comparable-to-better (example available
for preview at https://github.com/bdach/osu/actions/runs/23892493152)
- No longer required to have a completely separate workflow for test
result reporting
- No longer required to give `checks: write` permissions to the action
(I'd hope, we'll see, untested on a public repository with PRs involved)

One downside is there'll be no in-code annotations for failing tests
anymore but that's whatever IMO. Half the time they weren't even very
helpful, test results pretty much require maintainer interpretation
anyway.

This needs to be applied to a few other repos but I'm starting here
because this is the one where the traffic is highest and therefore
unbreaking the report is of most value (and also the one where I'll see
if it works with public PRs the fastest).

Side note, I was hoping to remove the artifact upload/download games by
just attaching the summary inside each individual test job in the
matrix, but [it looks like
crap](https://github.com/bdach/osu-framework/actions/runs/23888384309)
because only the first three summaries are loaded by default, so if
there are more, you have to click each remaining one to see its output.
Wow. Awesome.

Also updates the action to `v3.0.0` to resolve node deprecation
warnings.

## [Update inspectcode version to resolve deprecation
warnings](https://github.com/ppy/osu/commit/496cf6890ecb6571e6361731d46f53cceb7cb584)

More node deprecation warning fixes.
This commit is contained in:
Bartłomiej Dach
2026-04-02 17:19:46 +02:00
committed by GitHub
Unverified
parent 77ef450883
commit 5b6d215583
2 changed files with 31 additions and 48 deletions
+31 -3
View File
@@ -50,7 +50,7 @@ jobs:
exit $exit_code exit $exit_code
- name: InspectCode - name: InspectCode
uses: JetBrains/ReSharper-InspectCode@v0.11 uses: JetBrains/ReSharper-InspectCode@v0.12
with: with:
# this is WTF tier but if you don't specify *both* of these the defaults assume `build: true` # this is WTF tier but if you don't specify *both* of these the defaults assume `build: true`
build: false build: false
@@ -101,14 +101,42 @@ jobs:
NUnit.ConsoleOut=0 NUnit.ConsoleOut=0
# Attempt to upload results even if test fails. # Attempt to upload results even if test fails.
# https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#always # https://docs.github.com/en/actions/reference/workflows-and-actions/expressions#cancelled
- name: Upload Test Results - name: Upload Test Results
uses: actions/upload-artifact@v7 uses: actions/upload-artifact@v7
if: ${{ always() }} if: ${{ !cancelled() }}
with: with:
name: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}} name: osu-test-results-${{matrix.os.prettyname}}-${{matrix.threadingMode}}
path: ${{github.workspace}}/TestResults/TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}.trx path: ${{github.workspace}}/TestResults/TestResults-${{matrix.os.prettyname}}-${{matrix.threadingMode}}.trx
test-results:
name: Test results
runs-on: ubuntu-latest
# we want to wait for the `test` job to complete, but run regardless of whether it succeeds or fails
# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#example-not-requiring-successful-dependent-jobs
if: ${{ !cancelled() }}
needs: test
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download results
uses: actions/download-artifact@v8
with:
pattern: osu-test-results-*
merge-multiple: true
- name: Add test results summary to workflow run
uses: dorny/test-reporter@v3.0.0
with:
name: Results
path: "*.trx"
reporter: dotnet-trx
list-suites: 'failed'
list-tests: 'failed'
use-actions-summary: 'true'
build-only-android: build-only-android:
name: Build only (Android) name: Build only (Android)
runs-on: windows-latest runs-on: windows-latest
-45
View File
@@ -1,45 +0,0 @@
# This is a workaround to allow PRs to report their coverage. This will run inside the base repository.
# See:
# * https://github.com/dorny/test-reporter#recommended-setup-for-public-repositories
# * https://docs.github.com/en/actions/reference/authentication-in-a-workflow#permissions-for-the-github_token
name: Annotate CI run with test results
on:
workflow_run:
workflows: [ "Continuous Integration" ]
types:
- completed
permissions:
contents: read
actions: read
checks: write
jobs:
annotate:
name: Annotate CI run with test results
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion != 'cancelled' }}
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v6
with:
repository: ${{ github.event.workflow_run.repository.full_name }}
ref: ${{ github.event.workflow_run.head_sha }}
- name: Download results
uses: actions/download-artifact@v8
with:
pattern: osu-test-results-*
merge-multiple: true
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ github.token }}
- name: Annotate CI run with test results
uses: dorny/test-reporter@v2.6.0
with:
name: Results
path: "*.trx"
reporter: dotnet-trx
list-suites: 'failed'
list-tests: 'failed'