-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathappveyor.yml
More file actions
135 lines (120 loc) · 6.74 KB
/
Copy pathappveyor.yml
File metadata and controls
135 lines (120 loc) · 6.74 KB
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
version: build.{build}
image: Visual Studio 2022
skip_tags: true
skip_commits:
files:
- .github/
- docs/
- assets/
- README.md
- LICENSE
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- SECURITY.md
environment:
github_access_token:
secure: gtEHCUmmDjYfrp/NEe2qUGf4E6BKkPq7O7syP5MbiiQJnVmcLgrx2RrtBAfuXuK+xZdpsrqFRJ4tzE53132r8kQZjdHkN29w4JJmbFddqQLUFE0E4pJjHnSnFwSBegUx
init:
- cmd: git config --global core.autocrlf true
- cmd: setx IGNORE_NORMALISATION_GIT_HEAD_MOVE 1
- cmd: setx DOTNET_NO_WORKLOAD_UPDATE_NOTIFICATION 1
- cmd: setx DOTNET_CLI_TELEMETRY_OPTOUT 1
- cmd: setx DOTNET_NOLOGO 1
- cmd: RefreshEnv.cmd
- pwsh: Write-Host "Target branch is '$($env:APPVEYOR_REPO_BRANCH)'"
install:
- ps: |
Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile "$env:temp\dotnet-install.ps1"
& $env:temp\dotnet-install.ps1 -Architecture x64 -Version '10.0.100' -InstallDir "$env:ProgramFiles\dotnet"
before_build:
- cmd: gitversion /output buildserver /verbosity Minimal
- pwsh: Write-Host "Building Packata 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 build Packata.sln -p:version="%GitVersion_SemVer%" -c Release /p:ContinuousIntegrationBuild=true --nologo
test_script:
- pwsh: |
$ErrorActionPreference = "Stop"
dotnet test src/Packata.Core.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:Threshold=10 /p:ThresholdType=line /p:CoverletOutput=../../.coverage/coverage.Packata.Core.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult = $LastExitCode
dotnet test src/Packata.ResourceReaders.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:Threshold=10 /p:ThresholdType=line /p:CoverletOutput=../../.coverage/coverage.Packata.ResourceReaders.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult += $LastExitCode
dotnet test src/Packata.Provisioners.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:Threshold=10 /p:ThresholdType=line /p:CoverletOutput=../../.coverage/coverage.Packata.Provisioners.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult += $LastExitCode
dotnet test src/Packata.Storages.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:CoverletOutput=../../.coverage/coverage.Packata.Storages.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult += $LastExitCode
dotnet test src/Packata.OpenDataContract.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:CoverletOutput=../../.coverage/coverage.Packata.OpenDataContract.xml --test-adapter-path:. --logger:Appveyor --no-build --nologo
$globalTestResult += $LastExitCode
dotnet test src/Packata.DataContractSpecification.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude="[Packata.*.Testing]*" /p:CoverletOutput=../../.coverage/coverage.Packata.DataContractSpecification.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/"
after_test:
- dotnet tool install -g Schemathief-cli
- pwsh: .\package-delta-schemas.ps1
- dotnet pack src/Packata.Core -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack src/Packata.ResourceReaders -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack src/Packata.Provisioners -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack src/Packata.Storages -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack src/Packata.OpenDataContract -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
- dotnet pack src/Packata.DataContractSpecification -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
artifacts:
- path: '**\*.nupkg'
- path: '**\*.snupkg'
- path: '**\*.zip'
deploy:
- provider: NuGet
api_key:
secure: cJmwFNjDtOg9e17WPNGQrjUIng9A+W/dweIfvnkmDV6dSqvcUg3DJ3RbB8/SE6Cv
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] @{
Id = $env:APPVEYOR_PULL_REQUEST_NUMBER
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'
Start-Sleep -Seconds 5
if (Test-Path -Path "./.publish") {
$context | Upload-Release-Assets `
-Tag "v$($env:GitVersion_SemVer)" `
-Path "./.publish"
}
}
} 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."
}