forked from nvaccess/nvda
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
115 lines (107 loc) · 4.15 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
version: "{branch}-{build}"
branches:
only:
- master
- next
- rc
- /try-.*/
# For tags, branch = tag if GitHub couldn't work out the base branch.
- /release-.*/
environment:
PY_PYTHON: 2.7-32
encFileKey:
secure: ekOvuyywHuDdGZmRmoj+b3jfrq39A2xlx4RD5ZUGd/8=
mozillaSymsAuthToken:
secure: Dz24ukUM3Ho0soTDwJEYaw0fNY3yzfVp3Vf+y8I+Uh4wiSYibWJxOANacceGmfIU
symstore: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symstore.exe
init:
- ps: |
if ($env:APPVEYOR_REPO_TAG_NAME -and $env:APPVEYOR_REPO_TAG_NAME.StartsWith("release-")) {
# Strip "release-" prefix.
$version = $env:APPVEYOR_REPO_TAG_NAME.Substring(8)
Set-AppveyorBuildVariable "release" "1"
if ($env:APPVEYOR_REPO_TAG_NAME.Contains("rc")) {
$versionType = "beta"
} else {
$versionType = "stable"
}
} else {
$version = "$env:APPVEYOR_REPO_BRANCH-$env:APPVEYOR_BUILD_NUMBER," + $env:APPVEYOR_REPO_COMMIT.Substring(0, 8)
# The version is unique even for rebuilds, so we can use it for the AppVeyor version.
Update-AppveyorBuild -Version $version
if (!$env:APPVEYOR_REPO_BRANCH.StartsWith("try-")) {
$versionType = "snapshot:$env:APPVEYOR_REPO_BRANCH"
}
}
Set-AppveyorBuildVariable "version" $version
if ($versionType) {
Set-AppveyorBuildVariable "versionType" $versionType
}
clone_depth: 1
install:
- cd appveyor
# Decrypt files.
- openssl enc -aes-256-cbc -d -pass pass:%encFileKey% -in authenticode.pfx.enc -out authenticode.pfx
- openssl enc -aes-256-cbc -d -pass pass:%encFileKey% -in ssh_id_rsa.enc -out ssh_id_rsa
# Install ssh stuff.
- copy ssh_id_rsa %userprofile%\.ssh\id_rsa
- type ssh_known_hosts >> %userprofile%\.ssh\known_hosts
- cd ..
- git submodule update --init
build_script:
- ps: |
$sconsArgs = "launcher version=$env:version"
if ($env:release) {
$sconsArgs += " changes userGuide developerGuide release=1"
}
if ($env:versionType) {
$sconsArgs += " updateVersionType=$env:versionType"
}
$sconsArgs += ' publisher="NV Access"'
$sconsArgs += " certFile=appveyor\authenticode.pfx certTimestampServer=http://timestamp.digicert.com"
$sconsArgs += " version_build=$env:APPVEYOR_BUILD_NUMBER"
# We use cmd to run scons because PowerShell throws exceptions if warnings get dumped to stderr.
# It's possible to work around this, but the workarounds have annoying side effects.
Set-AppveyorBuildVariable "sconsArgs" $sconsArgs
- 'echo scons args: %sconsArgs%'
- py scons.py %sconsArgs%
# Build symbol store.
- ps: |
foreach ($syms in
# We don't just include source\*.dll because that would include system dlls.
"source\liblouis.dll", "source\*.pdb",
"source\lib\*.dll", "source\lib\*.pdb",
# We include source\lib64\*.exe to cover nvdaHelperRemoteLoader.
"source\lib64\*.dll", "source\lib64\*.exe", "source\lib64\*.pdb",
"source\synthDrivers\*.dll", "source\synthDrivers\*.pdb"
) {
& $env:symstore add /s symbols /compress -:NOREFS /t NVDA /f $syms
}
- cd symbols
- 7z a -tzip -r ..\output\symbols.zip *.dl_ *.ex_ *.pd_
- cd ..
artifacts:
- path: output\*
- path: output\*\*
deploy_script:
- ps: |
if ($env:versionType) {
# Not a try build.
# Notify our server.
$exe = Get-ChildItem -Name output\*.exe
$hash = (Get-FileHash "output\$exe" -Algorithm SHA1).Hash.ToLower()
$data = @{
jobId=$env:APPVEYOR_JOB_ID;
commit=$env:APPVEYOR_REPO_COMMIT;
version=$env:version; versionType=$env:versionType;
avVersion=$env:APPVEYOR_BUILD_VERSION;
branch=$env:APPVEYOR_REPO_BRANCH;
exe=$exe; hash=$hash;
artifacts=$artifacts
}
ConvertTo-Json -InputObject $data -Compress | ssh nvaccess@exbi.nvaccess.org nvdaAppveyorHook
# Upload symbols to Mozilla.
Start-FileDownload https://github.com/mozilla/gecko-dev/raw/master/toolkit/crashreporter/tools/win32/dump_syms_vc1800.exe -FileName appveyor\dump_syms.exe
py -m pip install requests
py appveyor\mozillaSyms.py
}