From 09ac4d181a2d6f73edcb52716d96ace21debfd9a Mon Sep 17 00:00:00 2001 From: Miheichev Aleksandr Sergeevich Date: Fri, 28 Aug 2026 06:27:11 +0000 Subject: [PATCH] ci: run the test job on its own inputs and trim its checkout (#10016) Follow-ups to #10007, none of which change what the test command does. The `paths:` filter listed individual source folders rather than the projects the suite builds, so a change anywhere else in that build produced no check at all. Of the last 40 merged pull requests, 31 touch the test build and 15 of those ran no tests. #9976 and #9932 edit `ServiceLib/Common/`, which every test depends on, and neither shows a single check. `Directory.Build.props` is the sharpest case: it sets `TargetFramework` and the Release options for every project, so an edit there can break the test build without producing a workflow run at all. The filter now follows the project graph instead. `ServiceLib.Tests` references `ServiceLib`, which references `ServiceLib.UdpTest`, and `Directory.Build.*`, `Directory.Packages.props` and `global.json` configure that build. It is shorter than the list it replaces, needs no edit when a test is added or a class moves, and still skips UI and documentation work: of those same 40 pull requests, 9 stay filtered out. `global.json` belongs there for a different reason: it does not affect a single line of the code under test, but it decides whether the tests run at all, so a bad edit there silently reproduces the failure #10007 fixed. The Checkout step needs neither `submodules: 'recursive'` nor `fetch-depth: '0'`. `GlobalHotKeys` is pulled in by `v2rayN.Desktop` only, and nothing in this job reads git history. `global.json` also gained the final newline `.editorconfig` asks for with `insert_final_newline = true` under `[*]`. --- .github/workflows/test.yml | 11 ++++++----- global.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cfd621d0..ea645447 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,8 +5,12 @@ on: branches: - master paths: - - 'v2rayN/ServiceLib/Services/CoreConfig/**' - - 'v2rayN/ServiceLib/Handler/Fmt/**' + - 'v2rayN/ServiceLib/**' + - 'v2rayN/ServiceLib.UdpTest/**' + - 'v2rayN/ServiceLib.Tests/**' + - 'v2rayN/Directory.Build.*' + - 'v2rayN/Directory.Packages.props' + - 'global.json' - '.github/workflows/test.yml' permissions: @@ -19,9 +23,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v7 - with: - submodules: 'recursive' - fetch-depth: '0' - name: Setup .NET uses: actions/setup-dotnet@v6 diff --git a/global.json b/global.json index 802ab217..3140116d 100644 --- a/global.json +++ b/global.json @@ -2,4 +2,4 @@ "test": { "runner": "Microsoft.Testing.Platform" } -} \ No newline at end of file +}