Skip to content

Merge pull request #9 from Axemasta/feature/prism-stable #24

Merge pull request #9 from Axemasta/feature/prism-stable

Merge pull request #9 from Axemasta/feature/prism-stable #24

Workflow file for this run

name: Moq.ILogger CI
on:
pull_request:
branches: [ "main" ]
paths:
- 'tests/**'
- 'src/**'
push:
branches: [ "main", "actions" ]
paths:
- 'src/**'
- 'version.json'
jobs:
test:
runs-on: windows-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/cloudbuild.md
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal --collect:"XPlat Code Coverage"
- name: Publish Code Coverage To PR
uses: 5monkeys/cobertura-action@v13
with:
path: tests/Moq.INavigationService.Tests/TestResults/*/coverage.cobertura.xml
minimum_coverage: 5
show_line: true
show_branch: true
show_missing: true
build:
runs-on: windows-latest
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/cloudbuild.md
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: drop
path: src/**/*.nupkg
release:
needs: build
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
env:
IS_PRERELEASE: true
RELEASE_TITLE: v0.0.1
VERSION_NAME: 0.0.1
steps:
- uses: actions/checkout@v3
- name: Download artifacts
id: download-artifact
uses: actions/download-artifact@v2.1.1
with:
name: drop
path: Artifacts/
- name: Process NuGet Version
shell: pwsh
working-directory: Artifacts/
id: process-version
run: |
$Artifact = Get-ChildItem -Recurse | Where-Object { $_.Name.EndsWith('.nupkg') -and $_.Name.StartsWith('Axemasta.Moq.INavigationService.') } | Select-Object -First 1
$ArtifactName = $Artifact.Name
$Pattern = '\b\d+\.\d+\.\d+(-\w+)?\b'
$Match = [regex]::Match($ArtifactName, $Pattern)
if (!$Match.Success) {
Write-Host "Unable to parse version number for artifact: $($ArtifactName)"
exit
}
$ArtifactName = $Match.Value
$IsPreRelease = $false
if ($ArtifactName.EndsWith("-pre")) {
$IsPreRelease = $true
}
if ($IsPreRelease) {
echo "IS_PRERELEASE=true" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
} else {
echo "IS_PRERELEASE=false" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
}
echo "action_state=$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "VERSION_NAME=$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "RELEASE_TITLE=v$ArtifactName" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Write-Host "ArtifactName = $ArtifactName"
Write-Host "Is PreRelease = $IsPreRelease"
- name: Bump version and push tag
id: tag_version
uses: mathieudutour/github-tag-action@v6.1
with:
custom_tag: ${{ env.VERSION_NAME }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- uses: ncipollo/release-action@main
name: Create Release
with:
artifacts: Artifacts/**/*.nupkg
artifactErrorsFailBuild: true
draft: true
generateReleaseNotes: true
name: ${{ env.RELEASE_TITLE }}
tag: ${{ env.VERSION_NAME }}
prerelease: ${{ env.IS_PRERELEASE }}
body: "TODO"
- name: Publish NuGet
run: nuget push Artifacts/**/*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{ secrets.NUGET_API_KEY }} -SkipDuplicate