-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
139 lines (128 loc) · 5.33 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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/NEe2qUHs3JGCaPUR00Y2eBn8YdQdGEG7ERnw6rnlv0fSi/uVfC/gdMwT75uai9n/0N7BZ/6Sf2HjzqUdUtTPUD+QiO2WFaxn8pPXPZxKeKVFPFsZN
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 '9.0.100' -InstallDir "$env:ProgramFiles\dotnet"
before_build:
- cmd: gitversion /output buildserver /verbosity Minimal
- pwsh: Write-Host "Building Expressif version 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 Expressif.sln -p:version="%GitVersion_SemVer%" -c Release /p:ContinuousIntegrationBuild=true --nologo
test_script:
- cmd: dotnet test Expressif.Testing -c Release /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=../.coverage/coverage.Expressif.xml /p:Threshold=10 /p:ThresholdType=line --test-adapter-path:. --logger:Appveyor --no-build --nologo
- pwsh: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri https://uploader.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe
.\codecov.exe --dir "./.coverage/"
after_test:
- dotnet pack Expressif -p:version="%GitVersion_SemVer%" -c Release --include-symbols --no-build --nologo
artifacts:
- path: '**\*.nupkg'
- path: '**\*.snupkg'
deploy:
- provider: NuGet
api_key:
secure: kI/1eEvtzIRLTq6UKJs1ANNFoU1T/ziCisV8ew7CkLyOFtLD0ozXirF8qYBFMk6d
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."
}
- pwsh: |
& .\generate-info.ps1 function
$exitCode = $LastExitCode
& .\generate-info.ps1 predicate
$exitCode += $LastExitCode
if ($exitCode -gt 0) {
Write-Host "Update of Library index needed"
& .\update-index.ps1
Write-Host "Update of docs needed"
& .\update-homepage.ps1
& .\update-docs.ps1 function special
& .\update-docs.ps1 function text
& .\update-docs.ps1 function numeric
& .\update-docs.ps1 function temporal
& .\update-docs.ps1 function io
& .\update-docs.ps1 predicate special
& .\update-docs.ps1 predicate text
& .\update-docs.ps1 predicate numeric
& .\update-docs.ps1 predicate temporal
& .\update-docs.ps1 predicate boolean
& .\update-examples.ps1 builder expression
& .\update-examples.ps1 builder predication
& .\update-examples.ps1 serializers
Write-Host "Update of README.md needed"
& .\update-readme.ps1 function
& .\update-readme.ps1 predicate
& git config --global credential.helper store
Set-Content -Path "$HOME\.git-credentials" -Value "https://$($env:github_access_token):[email protected]`n" -NoNewline
& git config --global user.email "[email protected]"
& git config --global user.name "AppVeyor bot"
& git add --all
& git status
& git commit -m "Update the automatically generated documentation related to the list of functions and predicates"
& git push origin
}