Skip to content
Merged
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
100 changes: 100 additions & 0 deletions .github/workflows/nuget-pipeline.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: NuGet Pipeline

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
permissions:
checks: write # required by dorny/test-reporter
pull-requests: write # required for PR comments
strategy:
matrix:
dotnet-version: ['9.0.x']

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Required for GitVersion

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v3.1.11
with:
versionSpec: '6.0.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v3.1.11
with:
useConfigFile: true

- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
source-url: https://pkgs.dev.azure.com/elemdisc/Elem/_packaging/elemd/nuget/v3/index.json
env:
NUGET_AUTH_TOKEN: ${{ secrets.AZURE_ARTIFACTS_PAT }}

- name: Install dependencies
run: dotnet restore

- name: Build
run: dotnet build --configuration Release --no-restore /p:Version=${{ steps.gitversion.outputs.semVer }}

- name: Test
run: |
dotnet test --no-restore --verbosity normal \
--logger "trx;LogFileName=test-results.trx" \
--collect:"XPlat Code Coverage" \
--results-directory TestResults \
QueryKit.UnitTests/QueryKit.UnitTests.csproj

dotnet test --no-restore --verbosity normal \
--logger "trx;LogFileName=integration-results.trx" \
--collect:"XPlat Code Coverage" \
--results-directory TestResults \
QueryKit.IntegrationTests/QueryKit.IntegrationTests.csproj

dotnet test --no-restore --verbosity normal \
--logger "trx;LogFileName=marten-results.trx" \
--collect:"XPlat Code Coverage" \
--results-directory TestResults \
QueryKit.MartenTests/QueryKit.MartenTests.csproj

- name: Test Report
uses: dorny/test-reporter@v1
if: success() || failure()
with:
name: .NET Test Results
path: "TestResults/*.trx" # will find all .trx files
reporter: dotnet-trx

- name: Code Coverage Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: "TestResults/**/coverage.cobertura.xml" # will find all coverage files
badge: true
format: markdown
output: both
# Optional: fail if coverage is below a threshold
# fail_below_min: true
# minimum_coverage: 80

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
path: code-coverage-results.md

- name: Pack
run: dotnet pack --configuration Release --no-build --output nupkgs /p:Version=${{ steps.gitversion.outputs.semVer }}

- name: Push Package
run: dotnet nuget push "./nupkgs/*.nupkg" --api-key AzureDevOps --skip-duplicate

5 changes: 4 additions & 1 deletion .github/workflows/querykit-integration-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ jobs:
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
- name: Run Integration Tests
working-directory: QueryKit.IntegrationTests
run: dotnet test --no-restore --verbosity minimal
- name: Run Marten Tests
working-directory: QueryKit.MartenTests
run: dotnet test --no-restore --verbosity minimal
58 changes: 58 additions & 0 deletions GitVersion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
workflow: GitHubFlow/v1
assembly-versioning-scheme: MajorMinorPatch
assembly-file-versioning-scheme: MajorMinorPatch
tag-prefix: '[vV]?'
version-in-branch-pattern: (?<version>[vV]?\d+(\.\d+)?(\.\d+)?).*
major-version-bump-message: (\+)?semver:\s?(breaking|major)
minor-version-bump-message: (\+)?semver:\s?(feature|minor)
patch-version-bump-message: (\+)?semver:\s?(fix|patch)
no-bump-message: (\+)?semver:\s?(none|skip)
commit-date-format: yyyy-MM-dd
merge-message-formats: {}
update-build-number: true
semantic-version-format: Strict
strategies:
- ConfiguredNextVersion
- Mainline
branches:
main:
mode: ContinuousDeployment
label: ''
increment: Patch
prevent-increment:
of-merged-branch: true
track-merge-target: false
track-merge-message: true
regex: ^master$|^main$
source-branches: []
is-source-branch-for: []
tracks-release-branches: false
is-release-branch: false
is-main-branch: true
feature:
mode: ContinuousDelivery
label: '{BranchName}'
increment: Patch
prevent-increment:
when-current-commit-tagged: false
track-merge-message: true
regex: ^(?<BranchName>.+)
source-branches:
- main
- release
is-source-branch-for: []
is-main-branch: false
pull-request:
mode: ContinuousDelivery
label: PullRequest
increment: Inherit
prevent-increment:
of-merged-branch: true
when-current-commit-tagged: false
label-number-pattern: '[/-](?<number>\d+)'
track-merge-message: true
regex: ^((refs\/)?pull|pull\-requests|pr)[/-]
source-branches:
- main
- feature
is-source-branch-for: []
Loading
Loading