forked from tunisiano187/Chocolatey-packages
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.appveyor.yml
189 lines (171 loc) · 7.96 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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# AU template: https://github.com/majkinetor/au-packages-template
version: '{build}'
pull_requests:
do_not_increment_build_number: true
max_jobs: 1
image: Visual Studio 2019
# History plugin requires complete log
#clone_depth: 5
branches:
only:
- master
#build:
# verbosity: minimal
environment:
# Set au version to use or omit to use the latest. Specify branch name to use development version from Github
au_version: master
au_push: true
# Use 1 to test all, or N to split testing into N groups
au_test_groups: 4
# Github token to commit pushed packages to repository
github_user_repo: tunisiano187/Chocolatey-packages
github_api_key:
secure: 4cUuTSoqgT+GnQaiRFSySZgdqFlOatcJmUr4m6LXTyks0FeyjgyDxgIbCbn7EZUX
# Gitter Integration
gitter_webhook:
secure: SuvLP4KrBXFvRRG7tcBiTUJvh8urQl3gOu4WYjLO9ZEXX0wZB3CwmIx1VnoA4I009yKsuPdPZ1P6NTuE7Vt9Cg==
# Mail credentials - for error notifications
mail_user: [email protected]
mail_pass:
secure: g3q4/u5581iqgaHEOXANHdd+AGhRVUT8osLi+AmmNdQ=
mail_server: smtp.gmail.com
mail_port: 587
mail_enablessl: $true
#ID of the gist used to save run results
gist_id: 7032dea203873812b435f152ee3794bf
#ID of the gist used to save test run results
gist_id_test: 90d63f6b99678e483a3669aaf2b51a1f
#Chocolatey API key - to push updated packages
api_key:
secure: aXQkG8BvsO7/zFDzAb7ADCdvottWbXf1sRoC34DUk9RIvzOiIdjprfw39CvNT4WK
#Chocolatey version we want to use when checking for updates (usually latest).
choco_version: '0.10.15'
choco_version_pr: '0.10.11' # Should be kept to the version available one year ago
nupkg_cache_path: C:\packages
#Gitlab informations
gitlab_user: tunisiano187 # GitLab username to use for the push
gitlab_api_key:
secure: 97kzpWK6hube+75dD44758RlG3o6gDbR1h0GvUO4neY= # GitLab API key associated with gitlab_user
gitlab_PushURL: https://gitlab.com/chocolatey-packages/automatic-updating.git # GitLab URL to push to. Must be HTTP or HTTPS. e.g. https://git.example.org/jekotia/au.git
gitlab_commit_strategy: atomictag
init:
- git config --global user.email "[email protected]"
- git config --global user.name "tunisiano187"
- git config --global core.safecrlf false
install:
- ps: |
$chocoVersion = if (($Env:APPVEYOR_PULL_REQUEST_NUMBER -eq $null) -or ($ENV:APPVEYOR_PULL_REQUEST_NUMBER -eq '')) { $Env:choco_version } else { $Env:choco_version_pr }
if (!(Test-Path "$env:nupkg_cache_path")) { mkdir -Force "$env:nupkg_cache_path" }
@{
'chocolatey' = $chocoVersion
'wormies-au-helpers' = '0.3.3'
}.GetEnumerator() | % {
if (!(Test-Path "${env:nupkg_cache_path}\$($_.Key).$($_.Value).nupkg")) { rm "${env:nupkg_cache_path}\$($_.Key).*.nupkg" ; iwr "https://chocolatey.org/api/v2/package/$($_.Key)/$($_.Value)" -OutFile "${env:nupkg_cache_path}\$($_.Key).$($_.Value).nupkg" }
if ($_.Key -eq 'chocolatey') { cup $_.Key --version $_.Value --source ${env:nupkg_cache_path} --allow-downgrade --pre }
else { cinst $_.Key --version $_.Value --source ${env:nupkg_cache_path} --ignore-dependencies }
}
rm "$env:ChocolateyInstall\logs\*.log"
- ps: 'Get-CimInstance win32_operatingsystem -Property Caption, OSArchitecture, Version | fl Caption, OSArchitecture, Version'
- ps: $PSVersionTable
- git --version
- choco --version
- ps: |
git clone -q https://github.com/majkinetor/au.git $Env:TEMP/au
install-module Wormies-AU-Helpers
Copy-Item setup/AU $Env:TEMP/au/AU -Recurse -Force
Copy-Item setup/build.ps1 -Destination $Env:TEMP/au/ -Force
. "$Env:TEMP/au/scripts/Install-AU.ps1" $Env:au_version
- ps: |
"Build info"
' {0,-20} {1}' -f 'SCHEDULED BUILD:', ($Env:APPVEYOR_SCHEDULED_BUILD -eq 'true')
' {0,-20} {1}' -f 'FORCED BUILD:' , ($Env:APPVEYOR_FORCED_BUILD -eq 'true')
' {0,-20} {1}' -f 'RE BUILD:' , ($Env:APPVEYOR_RE_BUILD -eq 'true')
build_script:
- ps: |
$ErrorActionPreference = 'Continue'
. ./scripts/EventLogs.ps1
Clear-EventLogs
if ($Env:APPVEYOR_PROJECT_NAME -like '*test*') { ./test_all.ps1 "random $Env:au_test_groups"; return }
if (($Env:APPVEYOR_PULL_REQUEST_NUMBER -ne $null) -and ($Env:APPVEYOR_PULL_REQUEST_NUMBER -ne '')) {
Set-Service wuauserv -StartupType Manual
./scripts/Test-RepoPackage.ps1 -CleanFiles -TakeScreenshots
return
} else {
# Clean the choco logs as it's quite large
rm "$env:ChocolateyInstall\logs\*.log"
}
if ( ($Env:APPVEYOR_SCHEDULED_BUILD -ne 'true') -and ($Env:APPVEYOR_FORCED_BUILD -ne 'true') ) {
switch -regex ($Env:APPVEYOR_REPO_COMMIT_MESSAGE)
{
'\[AU (.+?)\]' { $forced = $Matches[1] }
'\[PUSH (.+?)\]' {
$packages = $Matches[1] -split ' '
Write-Host "PUSHING PACKAGES: $packages"
foreach ($package in $packages) {
Write-Host ("{0}`n{1}`n" -f ('-'*60), "PACKAGE: $package")
$package_dir = ls -recurse | ? { $_.Name -eq "$package.nuspec"} | select -First 1 | % Directory
if (!$package_dir) { Write-Warning "Can't find package '$package'"; continue }
pushd $package_dir
if (Test-Path update.ps1 -ea 0) { ./update.ps1 }
choco pack; Push-Package -All;
popd
}
return
}
}
}
Write-Host "Installing requisites"
setup/requisites.ps1
git remote set-url origin https://$($env:gitlab_user):$($env:gitlab_api_key)@gitlab.com/chocolatey-packages/automatic-updating.git
git config --global user.email "[email protected]"
git config --global user.name "$env:gitlab_user"
git checkout master
Write-Host "Checking nuspec errors"
scripts/Find-NuspecError.ps1
Write-Host "updating packageSourceUrl"
scripts/Update-PackageSourceUrl.ps1 -GithubRepository "tunisiano187/Chocolatey-packages" -UseStopwatch
Write-Host "updating variables in ps1"
scripts/Update-Variables.ps1
Write-Host "updating IconUrl in nuspec"
scripts/Update-IconUrl.ps1 -Quiet -GithubRepository "tunisiano187/Chocolatey-packages" -UseStopwatch -Optimize
Write-Host "updating owners in nuspec"
import-module Wormies-AU-Helpers
$nuspec=Get-ChildItem ./*.nuspec -Recurse; foreach ($file in $nuspec) { Update-Metadata -key owners -value "tunisiano" -NuspecFile $file.FullName }
Write-Host "Updating Packages.md"
scripts/ListPackages.ps1
Write-host "Check broken package"
tools/looknewer.ps1
Write-Host "Downloading next issue's package"
scripts/Find-nextissue.ps1
Write-Host "updating packages"
au/update_all.ps1 -ForcedPackages $forced
Get-EventLogs * | ? Source -eq 'Schannel' | fl * | out-file eventlogs.txt
on_finish:
- ps: |
if (Test-Path $Env:TEMP\chocolatey\au) { 7z a -mx9 au_temp.7z $Env:TEMP\chocolatey\au\* }
$paths = @(
Resolve-Path "$env:TEMP\artifacts\*" -ea 0
Resolve-Path "$env:ChocolateyInstall\logs\*.log" -ea 0
'au_temp.7z'
'update_info.xml'
'Update-AUPackages.md'
'Update-History.md'
'eventlogs.txt'
)
$paths | ? { Test-Path $_ } | % { Push-AppveyorArtifact $_ }
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
notifications:
- provider: Email
to: $(mail_user)
on_build_success: false
on_build_failure: true
on_build_status_changed: true
- provider: GitHubPullRequest
template: "{{#passed}}:white_check_mark: Package verification completed without issues. PR is now pending human review{{/passed}}{{#failed}}:x: Package verification failed, please review the [Appveyor Logs]({{buildUrl}}) and the provided [Artifacts]({{buildUrl}}/artifacts) before requesting a human reviewer to take a look.{{/failed}}"
#- provider: Webhook
# url: https://webhooks.gitter.im/e/e7cfeb1b6fc707cee118
# on_build_success: true
# on_build_failure: true
# on_build_status_changed: true
cache:
- '%nupkg_cache_path% -> .appveyor.yml'