-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathappveyor.yml
112 lines (100 loc) · 4.51 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
version: build.{build}
image: Visual Studio 2022
branches:
except:
- /v\d+\.\d+\.\d+/
skip_commits:
files:
- .github/
- docs/
- misc/
- README.md
- LICENSE
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- SECURITY.md
environment:
github_access_token:
secure: gtEHCUmmDjYfrp/NEe2qULAkD/4uzohQRg46gqognNrcSQfv+7YrWbh/M+1VDlSZUk+fPvkUSDq89uYkgCHuJZ3IIMCsMBZH7vQfKVcU+w6PipuNDku9ab64u0owA+u8
init:
- cmd: git config --global core.autocrlf true
- cmd: setx IGNORE_NORMALISATION_GIT_HEAD_MOVE "1"
- cmd: RefreshEnv.cmd
- pwsh: Write-Host "Target branch is '$($env:APPVEYOR_REPO_BRANCH)'"
before_build:
- cmd: gitversion /output buildserver /verbosity Minimal
- pwsh: Write-Host "Building Streamistry version $($env:GitVersion_SemVer)"
- pwsh: |
. "$env:APPVEYOR_BUILD_FOLDER\github.ps1"
if (($env:APPVEYOR_REPO_BRANCH -eq "main") -and ($null -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)) {
$context = [PSCustomObject] @{
Id = $env:APPVEYOR_REPO_COMMIT
Owner = ($env:APPVEYOR_REPO_NAME -Split '/')[0]
Repository = ($env:APPVEYOR_REPO_NAME -Split '/')[1]
SecretToken = $env:github_access_token
}
foreach($id in ($context | Get-Commit-Associated-Pull-Requests)) {
$context.Id = $id
$context | Set-Pull-Request-Expected-Labels -Config '.github\conventional_commits_labels.json'
}
} else {
Write-Host 'Not a merge on main built on appveyor. Skipping mapping conventional commits and labels.'
}
build_script:
#- dotnet --info
- dotnet build Streamistry.sln -p:version="%GitVersion_SemVer%" -c Release /p:ContinuousIntegrationBuild=true --nologo
test_script:
- pwsh: |
$ErrorActionPreference = "Stop"
dotnet test Streamistry.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Include="[Streamistry]*" /p:Threshold=10 /p:ThresholdType=line /p:CoverletOutput=../.coverage/coverage.Streamistry.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult = $LastExitCode
dotnet test Streamistry.Json.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Include="[Streamistry.Json]*" /p:Threshold=10 /p:ThresholdType=line /p:CoverletOutput=../.coverage/coverage.Streamistry.Json.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult = $LastExitCode
if($globalTestResult -ne 0) { $host.SetShouldExit($globalTestResult) }
- pwsh: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri https://uploader.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe
.\codecov.exe --dir "./.coverage/"
- pwsh: |
& .\Streamistry.RabbitMQ.Testing\deploy-rabbitmq-test-env.ps1 -config "Release" -frameworks @("net8.0")
if ($lastexitcode -gt 0) {
throw "At least one of the test-suite was not successful. Build stopped."
}
after_test:
- dotnet pack Streamistry.Core -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack Streamistry.Json -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack Streamistry.RabbitMQ -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
artifacts:
- path: '**\*.nupkg'
- path: '**\*.snupkg'
deploy:
- provider: NuGet
api_key:
secure: JBxmWwoChwZ8wcpKddyjFqK2t0mDYPMPFM64Zt2WEExfbpqHmKpijWKiE+/Jzh7n
skip_symbols: false
artifact: /.*(\.|\.s)nupkg/
on:
branch: main
on_success:
- pwsh: |
. "$env:APPVEYOR_BUILD_FOLDER\github.ps1"
if (($env:APPVEYOR_REPO_BRANCH -eq "main") -and ($null -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)) {
if ($env:GitVersion_Patch -eq '0' -or $env:GitVersion_Patch -eq 0) {
$context = [PSCustomObject] @{
Owner = ($env:APPVEYOR_REPO_NAME -Split '/')[0]
Repository = ($env:APPVEYOR_REPO_NAME -Split '/')[1]
SecretToken = $env:github_access_token
}
if (-not ($context | Check-Release-Published -Tag "v$($env:GitVersion_SemVer)")) {
$context | Publish-Release `
-Tag "v$($env:GitVersion_SemVer)" `
-Name "$(($env:APPVEYOR_REPO_NAME -Split '/')[1]) $($env:GitVersion_SemVer)" `
-ReleaseNotes `
-DiscussionCategory 'Announcements'
}
} else {
Write-Host "No release published on GitHub when patch is not set to zero."
}
} else {
Write-Host "No release published on GitHub when not on branch main."
}