Skip to content

Commit 50be0f0

Browse files
committed
Publish Package workflow
1 parent 2abe1ad commit 50be0f0

File tree

4 files changed

+118
-29
lines changed

4 files changed

+118
-29
lines changed

.config/dotnet-tools.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": 1,
3+
"isRoot": true,
4+
"tools": {
5+
"dotnet-reportgenerator-globaltool": {
6+
"version": "5.4.7",
7+
"commands": [
8+
"reportgenerator"
9+
],
10+
"rollForward": false
11+
}
12+
}
13+
}

.github/workflows/dotnet.yml

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

.github/workflows/publish.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# Publishes beta-versions only
2+
name: Publish Package
3+
on:
4+
push:
5+
branches:
6+
- main
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Check .NET 8
12+
id: check-dotnet8
13+
run: |
14+
DOTNET8_VERSION=$(dotnet --version)
15+
if [[ "$DOTNET8_VERSION" =~ ^8\.0\.[0-9]+$ ]]; then
16+
echo "dotnet8_installed=true" >> $GITHUB_ENV
17+
else
18+
echo "dotnet8_installed=false" >> $GITHUB_ENV
19+
fi
20+
- name: Setup .NET 8
21+
if: env.dotnet8_installed == 'false'
22+
uses: actions/setup-dotnet@v4
23+
with:
24+
dotnet-version: 8.0.x
25+
dotnet-quality: 'ga'
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
- name: Restore
29+
run: dotnet restore ./Ocelot.Administration.IdentityServer4.sln -p:TargetFramework=net8.0
30+
- name: Build
31+
run: dotnet build --no-restore ./Ocelot.Administration.IdentityServer4.sln --framework net8.0
32+
- name: Unit tests
33+
run: dotnet test --no-restore --no-build ./unit/Ocelot.Administration.IdentityServer4.UnitTests.csproj --collect:"XPlat Code Coverage" --framework net8.0
34+
- name: Acceptance tests
35+
run: dotnet test --no-restore --no-build ./acceptance/Ocelot.Administration.IdentityServer4.AcceptanceTests.csproj --framework net8.0
36+
- name: Find coverage file # https://reportgenerator.io/
37+
id: coverage
38+
run: |
39+
echo "GITHUB REF is ${{ github.ref }}"
40+
echo "GITHUB REF NAME is ${{ github.ref_name }}"
41+
echo "GITHUB SHA is ${{ github.sha }}"
42+
coverage_1st_folder=$(ls -d ./unit/TestResults/*/ | head -1)
43+
echo "Detected first folder : $coverage_1st_folder"
44+
coverage_file="${coverage_1st_folder%/}/coverage.cobertura.xml"
45+
echo "Detecting coverage file... -> $coverage_file"
46+
if [ -f "$coverage_file" ]; then
47+
echo "Coverage file exists."
48+
echo "FILE_EXISTS=true" >> $GITHUB_OUTPUT
49+
echo "COVERAGE_FILE=$coverage_file" >> $GITHUB_OUTPUT
50+
else
51+
echo "Coverage file DOES NOT exist!"
52+
echo "FILE_EXISTS=false" >> $GITHUB_OUTPUT
53+
exit 1
54+
fi
55+
# dotnet tool restore
56+
# dotnet tool run reportgenerator -reports:$coverage_file -targetdir:coveragereport
57+
- name: Generate coverage report (HTML)
58+
if: steps.coverage.outputs.FILE_EXISTS == 'true'
59+
uses: danielpalme/ReportGenerator-GitHub-Action@5.4.7 # Docs: https://github.com/marketplace/actions/reportgenerator
60+
with:
61+
reports: ${{ steps.coverage.outputs.COVERAGE_FILE }}
62+
targetdir: coveragereport
63+
reporttypes: Html
64+
- name: Generate coverage report (Markdown)
65+
if: steps.coverage.outputs.FILE_EXISTS == 'true'
66+
uses: danielpalme/ReportGenerator-GitHub-Action@5.4.7 # Docs: https://github.com/marketplace/actions/reportgenerator
67+
with:
68+
reports: ${{ steps.coverage.outputs.COVERAGE_FILE }}
69+
targetdir: coveragereport-md
70+
reporttypes: MarkdownSummaryGithub
71+
72+
# build2:
73+
# runs-on: ubuntu-latest
74+
# permissions:
75+
# packages: write
76+
# contents: read
77+
# steps:
78+
# - name: Checkout repository
79+
# uses: actions/checkout@v4
80+
81+
# - name: Setup .NET
82+
# uses: actions/setup-dotnet@v4
83+
# with:
84+
# dotnet-version: |
85+
# 8.0.x
86+
# 9.0.x
87+
88+
# - name: .NET Info
89+
# run: dotnet --info
90+
91+
# - name: Restore dependencies
92+
# run: dotnet restore ./Ocelot.Administration.IdentityServer4.sln
93+
94+
# - name: Build project
95+
# run: dotnet build ./src/Ocelot.Testing.csproj --configuration Release --no-restore
96+
97+
# - name: Pack project
98+
# run: dotnet pack ./src/Ocelot.Testing.csproj --configuration Release --output ./packages
99+
100+
# - name: Publish to GitHub Packages
101+
# run: dotnet nuget push ./packages/*.nupkg --source "https://nuget.pkg.github.com/ThreeMammals/index.json" --api-key ${{ secrets.GITHUB_TOKEN }} --skip-duplicate
102+
103+
# - name: Publish to NuGet
104+
# run: dotnet nuget push ./packages/*.nupkg --source "https://api.nuget.org/v3/index.json" --api-key ${{ secrets.NUGET_API_KEY_2025 }} --skip-duplicate

unit/Ocelot.Administration.IdentityServer4.UnitTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<PrivateAssets>all</PrivateAssets>
1515
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1616
</PackageReference>
17+
<PackageReference Include="ReportGenerator.Core" Version="5.4.7" />
1718
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
1819
<PackageReference Include="Moq" Version="4.20.72" />
1920
<PackageReference Include="xunit" Version="2.9.3" />

0 commit comments

Comments
 (0)