-
Notifications
You must be signed in to change notification settings - Fork 348
Expand file tree
/
Copy path.appveyor.yml
More file actions
134 lines (114 loc) · 4.9 KB
/
Copy path.appveyor.yml
File metadata and controls
134 lines (114 loc) · 4.9 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
version: '{build}'
max_jobs: 1
image: Visual Studio 2022
# 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: 1.0.0
au_push: true
# Force test: use 1 to test all, or N to split testing into N groups
au_test_groups: 1
# Github token to commit pushed packages to repository
github_user_repo: {github_user}/{repository}
github_api_key:
secure: YOUR_GITHUB_API_KEY_HERE_ENCRYPTED_STRING #https://ci.appveyor.com/tools/encrypt
# Mail credentials - for error notifications
mail_user:
secure: YOUR_EMAIL_ACCOUNT_HERE_ENCRYPTED_STRING #https://ci.appveyor.com/tools/encrypt
mail_pass:
secure: YOUR_EMAIL_PASSWORD_HERE_ENCRYPTED_STRING #https://ci.appveyor.com/tools/encrypt
mail_server: smtp.gmail.com
mail_port: 587
mail_enablessl: true
# ID of the gist used to save run results - create a gist under the github_user (secret or not) and grab the id - https://gist.github.com/name/id
# Optional, leave empty to create anonymous gist
gist_id:
# Force test: gist id for test results
gist_id_test:
# Chocolatey API key - to push updated packages
api_key:
secure: YOUR_CHOCO_API_KEY_HERE_ENCRYPTED_STRING # https://ci.appveyor.com/tools/encrypt
#Chocolatey version we want to use when checking for updates (usually latest).
choco_version: '2.2.2'
nupkg_cache_path: C:\packages
init:
- git config --global user.email "chocolatey@realdimensions.net"
- git config --global user.name "Chocolatey-AU"
- git config --global core.safecrlf false
install:
- ps: |
$chocoVersion = $Env:choco_version
if (!(Test-Path "$env:nupkg_cache_path")) { mkdir -Force "$env:nupkg_cache_path" }
@{
'chocolatey' = $chocoVersion
# Uncomment and input the version if you are using any of these in AU scripts
# 'wormies-au-helpers' = 'VERSION_HERE'
# 'chocolatey-core.extension' = 'VERSION_HERE'
# 'autohotkey.install' = 'VERSION_HERE'
}.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') { choco upgrade $_.Key --version $_.Value --source ${env:nupkg_cache_path} --allow-downgrade --pre }
else { choco install $_.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: |
choco install chocolatey-au --version $Env:au_version -y
- 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'
if ($Env:APPVEYOR_PROJECT_NAME -like '*test*') { ./test_all.ps1 "random $Env:au_test_groups"; return }
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 }
try {
pushd $package_dir
if (Test-Path update.ps1 -ea 0) { ./update.ps1 }
choco pack
Push-Package
} finally {
popd
}
}
return
}
}
}
./update_all.ps1 -ForcedPackages $forced
7z a au_temp.zip $Env:TEMP\chocolatey\au\*
artifacts:
- path: update_info.xml
- path: Update-AUPackages.md
- path: au_temp.zip
notifications:
- provider: Email
to: $(mail_user)
on_build_success: false
on_build_failure: true
on_build_status_changed: true
cache:
- '%nupkg_cache_path% -> .appveyor.yml'
#on_finish:
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))