Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 21 additions & 163 deletions .github/workflows/dotnet-core.yml
Original file line number Diff line number Diff line change
@@ -1,172 +1,30 @@
name: .NET Core
name: CI .NET

on:
push:
branches: [ main ]
pull_request:
types: [opened, synchronize, reopened, closed]
types: [opened, synchronize, reopened]
branches: [ main ]

permissions:
contents: read

jobs:
build:
runs-on: windows-latest
outputs:
nbgv: ${{ steps.nbgv.outputs.SemVer2 }}
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_GENERATE_ASPNET_CERTIFICATE: false
solutionpath: src\NetTestRegimentation.sln
unittestprojectpath: src\NetTestRegimentation.UnitTests\NetTestRegimentation.UnitTests.csproj
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Setup .NET 5
uses: actions/setup-dotnet@v5
with:
dotnet-version: 5.0.x

- name: Setup .NET 6
uses: actions/setup-dotnet@v5
with:
dotnet-version: 6.0.x

- name: NBGV
id: nbgv
uses: dotnet/nbgv@master
with:
setAllVars: true

- name: Install dotnet tools
run: |
dotnet tool install --global dotMorten.OmdGenerator
dotnet tool install --global ConfigValidate
dotnet tool install --global dotnet-outdated-tool
dotnet tool install --global snitch
dotnet tool install --global dotnet-sonarscanner
dotnet tool install --global JetBrains.ReSharper.GlobalTools

- name: Prepare Artifact Directory
run: |
mkdir artifacts
mkdir artifacts\nupkg
mkdir artifacts\outdated
mkdir artifacts\snitch
mkdir artifacts\omd
mkdir artifacts\docfx

- name: Restore Packages
run: |
dotnet restore ${{ env.solutionpath }} /bl:artifacts\\binlog\\restore.binlog

- name: Run Build
run: |
dotnet build ${{ env.solutionpath }} --configuration Release --no-restore /bl:artifacts\\binlog\\build.binlog /p:ContinuousIntegrationBuild=true

- name: Run Unit Tests
run: |
dotnet test ${{ env.unittestprojectpath }} --configuration Release --no-build /bl:artifacts\\binlog\\unittest.binlog --nologo --blame-hang-timeout 60000 --results-directory artifacts\opencover --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover

- name: Upload Code Coverage
shell: bash
run: |
echo $PWD
bash <(curl -s https://codecov.io/bash) -X gcov -X coveragepy -t ${{ env.CODECOV_TOKEN }} -s '$PWD/artifacts/opencover' -f '*.xml'
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

- name: Produce Nuget Packages
run: |
dotnet pack ${{ env.solutionpath }} --configuration Release --no-build /bl:artifacts\\binlog\\pack.binlog --nologo /p:PackageOutputPath=..\..\artifacts\nuget /p:ContinuousIntegrationBuild=true

- name: List outdated packages
run: |
dotnet outdated -o artifacts\outdated\outdated.json src

# only store binlog on failure
- name: store binlogs
if: ${{ failure() }}
uses: actions/upload-artifact@v6
with:
name: binlogs
path: artifacts/binlog

- name: store docfx
uses: actions/upload-artifact@v6
with:
name: docfx
path: artifacts/docfx

- name: store nuget packages
uses: actions/upload-artifact@v6
with:
name: nuget
path: artifacts/nuget

- name: store omd
uses: actions/upload-artifact@v6
with:
name: omd
path: artifacts/omd

- name: store outdated
uses: actions/upload-artifact@v6
with:
name: outdated
path: artifacts/outdated

- name: store snitch
uses: actions/upload-artifact@v6
with:
name: snitch
path: artifacts/snitch

- name: store resharper dupfinder
uses: actions/upload-artifact@v6
with:
name: dupfinder
path: artifacts/dupfinder
release:
runs-on: ubuntu-latest
needs: build
if: contains(github.event.pull_request.labels.*.name, 'release') && github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
DOTNET_GENERATE_ASPNET_CERTIFICATE: false
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Download NuGet Packages
uses: actions/download-artifact@v7.0.0
with:
name: nuget

- name: Changelog
uses: glennawatson/ChangeLog@v1
id: changelog

- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ needs.build.outputs.nbgv }}
release_name: ${{ needs.build.outputs.nbgv }}
body: |
${{ steps.changelog.outputs.commitLog }}

- name: NuGet Push
env:
NUGET_AUTH_TOKEN: ${{ secrets.NUGET_API_KEY }}
SOURCE_URL: https://api.nuget.org/v3/index.json
run: |
dotnet nuget push -s ${{ env.SOURCE_URL }} -k ${{ env.NUGET_AUTH_TOKEN }} **/*.nupkg
permissions:
actions: write
contents: write
deployments: read
pages: write
id-token: write
pull-requests: write
packages: read
security-events: write
uses: dpvreony/github-action-workflows/.github/workflows/dotnet-ci.yml@1.8.1
with:
solutionName: "NetTestRegimentation"
apiDocumentation: "None"
secrets:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
10 changes: 10 additions & 0 deletions global.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"sdk": {
"version": "10.0.200",
"rollForward": "disable",
"allowPrerelease": false
},
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
47 changes: 1 addition & 46 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,48 +1,3 @@
{
"extends": [
"config:base"
],
"assigneesFromCodeOwners": true,
"packageRules": [{
"matchPackagePatterns": ["Audit.*"],
"groupName": "all audit.net dependencies",
"groupSlug": "all-audit-net",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["Exceptionless.*"],
"groupName": "all exceptionless dependencies",
"groupSlug": "all-exceptionless",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["Foundatio.*"],
"groupName": "all foundatio dependencies",
"groupSlug": "all-foundatio",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["Microsoft.*", "System.*"],
"groupName": "all microsoft dependencies",
"groupSlug": "all-microsoft",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["ReactiveUI.*"],
"groupName": "all reactiveui dependencies",
"groupSlug": "all-reactiveui",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["Xamarin.*"],
"groupName": "all xamarin dependencies",
"groupSlug": "all-xamarin",
"labels": ["dependencies"]
},
{
"matchPackagePatterns": ["Xunit.*"],
"groupName": "all xunit dependencies",
"groupSlug": "all-xunit",
"labels": ["dependencies"]
}]
"extends": ["local>dpvreony/.github:renovate"]
}
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net48;net8.0</TargetFrameworks>
<TargetFramework>net10.0</TargetFramework>
<OutputType>exe</OutputType>
</PropertyGroup>

Expand Down
Loading