From afb2b6ace0b261184c3c5d3e8aedfd6ad945d518 Mon Sep 17 00:00:00 2001 From: Ivan Starostin Date: Tue, 31 Mar 2026 21:23:40 +0300 Subject: [PATCH 1/2] Build for net10 --- .github/workflows/ci.yml | 20 +++++++-- .../TeamTools.Linter.CommandLine.csproj | 2 +- .../packages.lock.json | 45 ++++++++++++++++--- .../TeamTools.Common.Linting.csproj | 2 +- TeamTools.TSQL.Common/packages.lock.json | 26 +++++++++++ 5 files changed, 84 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53a2738..8086a50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,6 +72,7 @@ jobs: 3.1.x 6.0.x 8.0.x + 10.0.x - name: Display dotnet version run: dotnet --info @@ -140,6 +141,11 @@ jobs: -p:Configuration=${{ matrix.configuration }} -p:BaseOutputPath="${{ env.OUTPUT_PATH }}" -p:PublishDir="${{ env.PUBLISH_PATH }}/Release/net8.0" + && dotnet publish "${{ env.PUBLISH_PROJECT_PATH }}" --no-build + -p:TargetFramework=net10.0 + -p:Configuration=${{ matrix.configuration }} + -p:BaseOutputPath="${{ env.OUTPUT_PATH }}" + -p:PublishDir="${{ env.PUBLISH_PATH }}/Release/net10.0" - name: Upload build for netcoreapp3.1 uses: actions/upload-artifact@v4 @@ -159,6 +165,12 @@ jobs: name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net8.0 path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net8.0 + - name: Upload build for net10.0 + uses: actions/upload-artifact@v4 + with: + name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net10.0 + path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net10.0 + - name: Test if: ${{ !matrix.coverage }} run: > @@ -265,14 +277,16 @@ jobs: fail-fast: false matrix: configuration: [Release] - dotnet: [netstandard2.0, net6.0, net8.0] + dotnet: [netstandard2.0, net6.0, net8.0, net10.0] include: + - dotnet: netstandard2.0 + app-dotnet: netcoreapp3.1 - dotnet: net6.0 app-dotnet: net6.0 - dotnet: net8.0 app-dotnet: net8.0 - - dotnet: netstandard2.0 - app-dotnet: netcoreapp3.1 + - dotnet: net10.0 + app-dotnet: net10.0 steps: - name: Grab CLI ${{ matrix.app-dotnet }} diff --git a/TeamTools.Linter.CommandLine/TeamTools.Linter.CommandLine.csproj b/TeamTools.Linter.CommandLine/TeamTools.Linter.CommandLine.csproj index 519dd6d..5b7f918 100644 --- a/TeamTools.Linter.CommandLine/TeamTools.Linter.CommandLine.csproj +++ b/TeamTools.Linter.CommandLine/TeamTools.Linter.CommandLine.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1;net6.0;net8.0 + netcoreapp3.1;net6.0;net8.0;net10.0 Exe Debug;Release diff --git a/TeamTools.Linter.CommandLine/packages.lock.json b/TeamTools.Linter.CommandLine/packages.lock.json index 1b87a1c..5193c5e 100644 --- a/TeamTools.Linter.CommandLine/packages.lock.json +++ b/TeamTools.Linter.CommandLine/packages.lock.json @@ -38,15 +38,9 @@ "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { - "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" - }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", @@ -60,6 +54,45 @@ } } }, + "net10.0": { + "CommandLineParser": { + "type": "Direct", + "requested": "[2.9.1, )", + "resolved": "2.9.1", + "contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Direct", + "requested": "[7.0.4, )", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Newtonsoft.Json": { + "type": "Direct", + "requested": "[13.0.4, )", + "resolved": "13.0.4", + "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==" + }, + "Roslynator.Analyzers": { + "type": "Direct", + "requested": "[4.14.1, )", + "resolved": "4.14.1", + "contentHash": "yMSjze/xMYDF6PCE60/ULWx0tttNyKAndw2KijNxbKil0FX8nvDeEneDZGma8Uifk17RlfZqIXxf1mmBmhRHjg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.1.118, )", + "resolved": "1.1.118", + "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" + }, + "teamtools.common.linting": { + "type": "Project", + "dependencies": { + "Microsoft.NETCore.Platforms": "[7.0.4, )", + "Newtonsoft.Json": "[13.0.4, )" + } + } + }, "net6.0": { "CommandLineParser": { "type": "Direct", diff --git a/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj b/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj index 1a4d99d..74ea82b 100644 --- a/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj +++ b/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net6.0;net8.0;net10.0 Library Debug;Release diff --git a/TeamTools.TSQL.Common/packages.lock.json b/TeamTools.TSQL.Common/packages.lock.json index f4559ec..d57002b 100644 --- a/TeamTools.TSQL.Common/packages.lock.json +++ b/TeamTools.TSQL.Common/packages.lock.json @@ -36,6 +36,32 @@ "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" } }, + "net10.0": { + "Microsoft.NETCore.Platforms": { + "type": "Direct", + "requested": "[7.0.4, )", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Newtonsoft.Json": { + "type": "Direct", + "requested": "[13.0.4, )", + "resolved": "13.0.4", + "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==" + }, + "Roslynator.Analyzers": { + "type": "Direct", + "requested": "[4.14.1, )", + "resolved": "4.14.1", + "contentHash": "yMSjze/xMYDF6PCE60/ULWx0tttNyKAndw2KijNxbKil0FX8nvDeEneDZGma8Uifk17RlfZqIXxf1mmBmhRHjg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.1.118, )", + "resolved": "1.1.118", + "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" + } + }, "net6.0": { "Microsoft.NETCore.Platforms": { "type": "Direct", From 782de325879c7d4213d48b678ab387b01cb71a53 Mon Sep 17 00:00:00 2001 From: Ivan Starostin Date: Tue, 31 Mar 2026 21:25:06 +0300 Subject: [PATCH 2/2] Unify workflow definition a little with others --- .github/workflows/ci.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8086a50..82d493b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -147,29 +147,37 @@ jobs: -p:BaseOutputPath="${{ env.OUTPUT_PATH }}" -p:PublishDir="${{ env.PUBLISH_PATH }}/Release/net10.0" - - name: Upload build for netcoreapp3.1 + - name: Upload build artifacts netcore3.1 uses: actions/upload-artifact@v4 + if: ${{ matrix.publish }} with: name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-netcoreapp3.1 path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/netcoreapp3.1 + if-no-files-found: error - - name: Upload build for net6.0 + - name: Upload build artifacts 6.0 uses: actions/upload-artifact@v4 + if: ${{ matrix.publish }} with: name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net6.0 path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net6.0 + if-no-files-found: error - - name: Upload build for net8.0 + - name: Upload build artifacts 8.0 uses: actions/upload-artifact@v4 + if: ${{ matrix.publish }} with: name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net8.0 path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net8.0 + if-no-files-found: error - - name: Upload build for net10.0 + - name: Upload build artifacts 10.0 uses: actions/upload-artifact@v4 + if: ${{ matrix.publish }} with: name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net10.0 path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net10.0 + if-no-files-found: error - name: Test if: ${{ !matrix.coverage }} @@ -194,6 +202,7 @@ jobs: with: name: test-results path: TestResults + if-no-files-found: error - name: Test Report uses: dorny/test-reporter@v2 @@ -202,6 +211,7 @@ jobs: name: NUnit testing ${{ matrix.configuration }} build on ${{ matrix.os }} path: "**/TestResults/*.trx,*.trx" reporter: dotnet-trx + if-no-files-found: error validate-markdown: runs-on: ubuntu-latest @@ -232,6 +242,7 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Download test results uses: actions/download-artifact@v4 with: