Skip to content

Commit 1b1f77e

Browse files
authored
Update target frameworks and package versions for .NET 10 support (#48)
* Update target frameworks and package versions for .NET 10 support * Update GitHub Actions workflows to use .NET 8, 9, and 10; upgrade action versions * Refactor build system and project structure - Added a new project file (all.csproj) to manage project references based on build configuration. - Removed Cake build scripts (build.cake, build.ps1, build.sh) to streamline the build process. - Deleted the solution file (All.sln) to eliminate legacy project references and improve project organization. * Remove check for breaking API changes from CI workflow
1 parent 56b9ea9 commit 1b1f77e

14 files changed

Lines changed: 143 additions & 880 deletions

.github/workflows/ci.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: CI
2+
run-name: CI 🔍 ${{ github.event.pull_request.title }}
3+
4+
on:
5+
pull_request:
6+
7+
concurrency:
8+
group: ci-${{ github.event.pull_request.number }}
9+
cancel-in-progress: true
10+
11+
jobs:
12+
tests:
13+
runs-on: ubuntu-latest
14+
name: Tests dotnet ${{ matrix.dotnet-version }}
15+
timeout-minutes: 60
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
dotnet-version: [10]
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v6
23+
with:
24+
submodules: true
25+
26+
- name: Setup .NET
27+
uses: actions/setup-dotnet@v5
28+
with:
29+
dotnet-version: ${{ matrix.dotnet-version }}
30+
31+
- name: Build projects
32+
shell: bash
33+
run: dotnet build ./all.csproj -f net${{ matrix.dotnet-version }}.0
34+
35+
- name: Run tests
36+
shell: bash
37+
run: dotnet test ./all.csproj /p:BuildTestsOnly=true --no-build -f net${{ matrix.dotnet-version }}.0 -- RunConfiguration.MaxCpuCount=1

.github/workflows/pull-request.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Release
2+
run-name: Release 🚀 ${{ github.ref_name }}
23

34
on:
45
push:
@@ -8,38 +9,49 @@ on:
89
jobs:
910
release:
1011
runs-on: ubuntu-latest
11-
12+
strategy:
13+
matrix:
14+
project: ['.']
1215
steps:
1316
- name: Checkout code
14-
uses: actions/checkout@v2
15-
- name: Use .NET SDK from global.json
16-
uses: actions/setup-dotnet@v3
17-
- name: Build, Test and Push
18-
uses: swisslife-oss/actions/release-packages@main
19-
with:
20-
tag: ${{ github.ref_name }}
21-
nuget_api_key: ${{ secrets.NUGET_API_KEY }}
22-
enable_push: 'yes'
17+
uses: actions/checkout@v6
2318

24-
sonar:
25-
runs-on: ubuntu-latest
26-
steps:
27-
- name: Checkout code
28-
uses: actions/checkout@v2
2919
- name: Setup .NET
30-
uses: actions/setup-dotnet@v3
31-
with:
32-
dotnet-version: |
33-
6
34-
7
35-
8
36-
- name: Restore tools
37-
run: dotnet tool restore
38-
- name: Build, Test and Sonar
39-
uses: swisslife-oss/actions/release-sonar@main
40-
with:
41-
tag: ${{ github.ref_name }}
42-
sonar_token: ${{ secrets.SONAR_TOKEN }}
43-
sonar_project_key: 'SwissLife-OSS_HotChocolateExtensions'
44-
sonar_project_name: 'hotchocolate-extensions'
45-
sonar_exclusions: ${{ vars.SONAR_EXCLUSIONS }}
20+
uses: actions/setup-dotnet@v5
21+
22+
- name: Build projects
23+
shell: bash
24+
working-directory: ${{ matrix.project }}
25+
run: dotnet build ./all.csproj -c Release
26+
27+
- name: Extract version
28+
id: extract_version
29+
shell: bash
30+
run: |
31+
PACKAGE_VERSION="${{ github.ref_name }}"
32+
ASSEMBLY_VERSION="$(echo ${{ github.ref_name }} | grep -o '^[0-9]*\.[0-9]*\.[0-9]*').0"
33+
echo "package_version=$PACKAGE_VERSION" >> $GITHUB_OUTPUT
34+
echo "assembly_version=$ASSEMBLY_VERSION" >> $GITHUB_OUTPUT
35+
echo "Package Version: $PACKAGE_VERSION"
36+
echo "Assembly Version: $ASSEMBLY_VERSION"
37+
38+
- name: Pack
39+
shell: bash
40+
working-directory: ${{ matrix.project }}
41+
run: |
42+
dotnet pack ./all.csproj \
43+
-c Release \
44+
-o ./out \
45+
--no-build \
46+
--include-symbols \
47+
--include-source \
48+
--verbosity Minimal \
49+
/p:Version=${{ steps.extract_version.outputs.package_version }} \
50+
/p:AssemblyVersion=${{ steps.extract_version.outputs.assembly_version }} \
51+
/p:FileVersion=${{ steps.extract_version.outputs.assembly_version }}
52+
53+
- name: Push
54+
shell: bash
55+
working-directory: ${{ matrix.project }}
56+
run: |
57+
find . -name '*.nupkg' -not -name '*.symbols.nupkg' | parallel --jobs 0 'dotnet nuget push {} --api-key ${{ secrets.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json'

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<PropertyGroup>
4-
<TargetFrameworks>net7.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
55
<LangVersion>latest</LangVersion>
66
<Nullable>enable</Nullable>
77
</PropertyGroup>

Directory.Packages.props

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,21 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="[1.1,)" />
8+
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="[8.0.0,)" />
99

10-
<PackageVersion Include="HotChocolate" Version="14.0.0" />
11-
<PackageVersion Include="HotChocolate.AspNetCore" Version="14.0.0" />
12-
<PackageVersion Include="HotChocolate.AspNetCore.Authorization" Version="14.0.0" />
13-
<PackageVersion Include="HotChocolate.Data" Version="14.0.0" />
14-
<PackageVersion Include="HotChocolate.Execution" Version="14.0.0" />
15-
<PackageVersion Include="HotChocolate.Types" Version="14.0.0" />
16-
<PackageVersion Include="HotChocolate.Types.Analyzers" Version="14.0.0" />
10+
<PackageVersion Include="HotChocolate" Version="15.1.12" />
11+
<PackageVersion Include="HotChocolate.AspNetCore" Version="15.1.12" />
12+
<PackageVersion Include="HotChocolate.AspNetCore.Authorization" Version="15.1.12" />
13+
<PackageVersion Include="HotChocolate.Data" Version="15.1.12" />
14+
<PackageVersion Include="HotChocolate.Execution" Version="15.1.12" />
15+
<PackageVersion Include="HotChocolate.Types" Version="15.1.12" />
16+
<PackageVersion Include="HotChocolate.Types.Analyzers" Version="15.1.12" />
1717

18-
<PackageVersion Include="MassTransit.Azure.ServiceBus.Core" Version="[8.0.0,)" />
19-
<PackageVersion Include="Microsoft.AspNetCore.Http.Abstractions" Version="[2.2.0,)" />
18+
<!-- Pinned to 8.3.6: last Apache-2.0 version. v9+ is commercial (Massient, Inc.) -->
19+
<PackageVersion Include="MassTransit.Azure.ServiceBus.Core" Version="[8.3.6]" />
20+
<PackageVersion Include="Microsoft.AspNetCore.Http.Abstractions" Version="[2.2.0,3)" />
2021

21-
<PackageVersion Include="System.Threading.Channels" Version="[4.7.1,)" />
22-
</ItemGroup>
23-
24-
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0'">
25-
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="[7,)" />
26-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="[7,)" />
27-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[7,)" />
28-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="[7,)" />
29-
<PackageVersion Include="Microsoft.Extensions.Logging" Version="[7,)" />
30-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="[7,)" />
31-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="[7,)" />
32-
<PackageVersion Include="Microsoft.Extensions.Localization" Version="[7,)" />
22+
<PackageVersion Include="System.Threading.Channels" Version="[8.0.0,)" />
3323
</ItemGroup>
3424

3525
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
@@ -43,18 +33,40 @@
4333
<PackageVersion Include="Microsoft.Extensions.Localization" Version="[8,)" />
4434
</ItemGroup>
4535

36+
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
37+
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="[9.0.2,)" />
38+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="[9.0.2,)" />
39+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[9.0.2,)" />
40+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="[9.0.2,)" />
41+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="[9.0.2,)" />
42+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="[9.0.2,)" />
43+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="[9.0.2,)" />
44+
<PackageVersion Include="Microsoft.Extensions.Localization" Version="[9.0.2,)" />
45+
</ItemGroup>
46+
47+
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
48+
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="[10,)" />
49+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="[10,)" />
50+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="[10,)" />
51+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="[10,)" />
52+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="[10,)" />
53+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="[10,)" />
54+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="[10,)" />
55+
<PackageVersion Include="Microsoft.Extensions.Localization" Version="[10,)" />
56+
</ItemGroup>
57+
4658
<ItemGroup>
47-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
48-
<PackageVersion Include="xunit" Version="2.9.2" />
59+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
60+
<PackageVersion Include="xunit" Version="2.9.3" />
4961
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2">
5062
<PrivateAssets>all</PrivateAssets>
5163
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
5264
</PackageVersion>
53-
<PackageVersion Include="FluentAssertions" Version="6.12.1" />
54-
<PackageVersion Include="Moq" Version="4.13.0" />
55-
<PackageVersion Include="Snapshooter.Xunit" Version="0.14.1" />
56-
<PackageVersion Include="Squadron.Mongo" Version="0.17.0" />
57-
<PackageVersion Include="coverlet.msbuild" Version="3.1.2" />
65+
<PackageVersion Include="FluentAssertions" Version="6.12.2" />
66+
<PackageVersion Include="Moq" Version="4.18.4" />
67+
<PackageVersion Include="Snapshooter.Xunit" Version="1.1.0" />
68+
<PackageVersion Include="Squadron.Mongo" Version="1.0.1" />
69+
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
5870
</ItemGroup>
5971

6072
</Project>

all.csproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<Project Sdk="Microsoft.Build.Traversal/4.1.82">
2+
3+
<PropertyGroup>
4+
<BuildTestsOnly>false</BuildTestsOnly>
5+
<IncludeInSolutionFile>false</IncludeInSolutionFile>
6+
</PropertyGroup>
7+
8+
<ItemGroup Condition="'$(BuildTestsOnly)' != 'true'">
9+
<ProjectReference Include="**/*.csproj" />
10+
</ItemGroup>
11+
12+
<ItemGroup Condition="'$(BuildTestsOnly)' == 'true'">
13+
<ProjectReference Include="**/*.Tests.csproj" />
14+
</ItemGroup>
15+
16+
</Project>

0 commit comments

Comments
 (0)