Permalink
Switch branches/tags
release-2018.3.2 release-2018.3.1 release-2018.3.1rc1 release-2018.3 release-2018.3rc5 release-2018.3rc4 release-2018.3rc3 release-2018.3rc2 release-2018.3rc1 release-2018.3beta4 release-2018.3beta3 release-2018.3beta2 release-2018.3beta1 release-2018.2.1 release-2018.2.1rc1 release-2018.2 release-2018.2rc3 release-2018.2rc2 release-2018.2rc1 release-2018.1.1 release-2018.1.1rc2 release-2018.1.1rc1 release-2018.1 release-2018.1rc2 release-2018.1rc1 release-2017.4 release-2017.4rc4 release-2017.4rc3 release-2017.4rc2 release-2017.4rc1 release-2017.3 release-2017.3rc1 release-2017.2 release-2017.2rc1 release-2017.1 release-2017.1rc1 release-2016.4 release-2016.4rc2 release-2016.4rc1 release-2016.3 release-2016.3rc2 release-2016.3rc1 release-2016.2.1 release-2016.2 release-2016.2rc1 release-2016.1 release-2016.1rc1 release-2015.4 release-2015.4rc1 release-2015.3 release-2015.3rc1 release-2015.2 release-2015.2rc2 release-2015.2rc1 release-2015.1 release-2015.1rc1 release-2014.4 release-2014.4rc1 release-2014.3 release-2014.3rc3 release-2014.3rc2 release-2014.3rc1 release-2014.2 release-2014.2rc1 release-2014.1 release-2014.1rc4 release-2014.1rc3 release-2014.1rc2 release-2014.1rc1 release-2013.3 release-2013.3rc4 release-2013.3rc3 release-2013.3rc2 release-2013.3rc1 release-2013.2 release-2013.2rc2 release-2013.2rc1 release-2013.1.1 release-2013.1 release-2013.1rc2 release-2013.1rc1 release-2013.1beta2 release-2013.1beta1 release-2012.3.1 release-2012.3 release-2012.3rc1 release-2012.3beta3 release-2012.3beta2 release-2012.3beta1 release-2012.2.1 release-2012.2 release-2012.2rc2 release-2012.2rc1 release-2012.2beta2 release-2012.2beta1 release-2012.1 release-2012.1rc1 release-2012.1beta2 release-2012.1beta1 release-2011.3
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
194 lines (183 sloc) 7.85 KB
os: Visual Studio 2017
version: "{branch}-{build}"
branches:
only:
- master
- beta
- 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: p37Fxo78fsRdmR8v8TPz978QvVaqvbjdIBzFe8ZOpX0FUprm46rkhd374QM1CqMO
symstore: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symstore.exe
init:
- ps: |
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
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") -or $env:APPVEYOR_REPO_TAG_NAME.Contains("beta")) {
$versionType = "beta"
} else {
$versionType = "stable"
}
} else {
if($env:APPVEYOR_PULL_REQUEST_NUMBER) {
$version = "pr$env:APPVEYOR_PULL_REQUEST_NUMBER-$env:APPVEYOR_BUILD_NUMBER," + $env:APPVEYOR_REPO_COMMIT.Substring(0, 8)
} elseif($env:APPVEYOR_REPO_BRANCH -eq "master") {
$version = "alpha-$env:APPVEYOR_BUILD_NUMBER," + $env:APPVEYOR_REPO_COMMIT.Substring(0, 8)
} 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 -eq "master") {
$versionType = "snapshot:alpha"
} elseif (!$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.
- ps: |
if(!$env:APPVEYOR_PULL_REQUEST_NUMBER) {
openssl enc -aes-256-cbc -d -pass pass:$env:encFileKey -in authenticode.pfx.enc -out authenticode.pfx
openssl enc -aes-256-cbc -d -pass pass:$env:encFileKey -in ssh_id_rsa.enc -out ssh_id_rsa
# Install ssh stuff.
copy ssh_id_rsa $env:userprofile\.ssh\id_rsa
}
- type ssh_known_hosts >> %userprofile%\.ssh\known_hosts
- cd ..
- git submodule update --init
build_script:
- ps: |
$sconsOutTargets = "launcher"
if(!$env:APPVEYOR_PULL_REQUEST_NUMBER) {
$sconsOutTargets += " appx"
}
$sconsArgs = "version=$env:version"
if ($env:release) {
$sconsOutTargets += " changes userGuide developerGuide client"
$sconsArgs += " release=1"
}
if ($env:versionType) {
$sconsArgs += " updateVersionType=$env:versionType"
}
$sconsArgs += ' publisher="NV Access"'
if(!$env:APPVEYOR_PULL_REQUEST_NUMBER) {
$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 "sconsOutTargets" $sconsOutTargets
Set-AppveyorBuildVariable "sconsArgs" $sconsArgs
- 'echo scons args: %sconsArgs%'
- py scons.py source %sconsArgs%
# We don't need launcher to run checkPot, so run the checkPot before launcher.
- py scons.py checkPot %sconsArgs%
# The pot gets built by tests, but we don't actually need it as a build artifact.
- del output\*.pot
- 'echo scons output targets: %sconsOutTargets%'
- py scons.py %sconsOutTargets% %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 ..
before_test:
# Manually grab pyscreeze 0.1.13 as latest release is completely broken.
- py -m pip install pyscreeze==0.1.13
- py -m pip install robotframework robotremoteserver pyautogui nose
- mkdir testOutput
- mkdir testOutput\unit
- mkdir testOutput\system
- ps: |
$errorCode=0
$nvdaLauncherFile=".\output\nvda"
if(!$env:release) {
$nvdaLauncherFile+="_snapshot"
}
$nvdaLauncherFile+="_${env:version}.exe"
echo NVDALauncherFile: $NVDALauncherFile
$outputDir=$(resolve-path .\testOutput)
$installerLogFilePath="$outputDir\nvda_install.log"
$installerProcess=start-process -FilePath "$nvdaLauncherFile" -ArgumentList "--install-silent --debug-logging --log-file $installerLogFilePath" -passthru
try {
$installerProcess | wait-process -Timeout 180
$errorCode=$installerProcess.ExitCode
} catch {
echo NVDA installer process timed out
$errorCode=1
}
Push-AppveyorArtifact $installerLogFilePath
if($errorCode -ne 0) { $host.SetShouldExit($errorCode) }
test_script:
- ps: |
$errorCode=0
$outDir = (Resolve-Path .\testOutput\unit\)
$unitTestsXml = "$outDir\unitTests.xml"
py -m nose --with-xunit --xunit-file="$unitTestsXml" ./tests/unit
if($LastExitCode -ne 0) { $errorCode=$LastExitCode }
Push-AppveyorArtifact $unitTestsXml
$wc = New-Object 'System.Net.WebClient'
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", $unitTestsXml)
if($errorCode -ne 0) { $host.SetShouldExit($errorCode) }
- ps: |
$testOutput = (Resolve-Path .\testOutput\)
$systemTestOutput = (Resolve-Path "$testOutput\system")
$testSource = "./tests/system"
py -m robot --loglevel DEBUG -d $systemTestOutput -x systemTests.xml -v whichNVDA:installed -P "$testSource/libraries" "$testSource"
Compress-Archive -Path "$systemTestOutput\*" -DestinationPath "$testOutput\systemTestResult.zip"
Push-AppveyorArtifact "$testOutput\systemTestResult.zip"
if($LastExitCode -ne 0) { $errorCode=$LastExitCode }
$wc = New-Object 'System.Net.WebClient'
$wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path "$systemTestOutput\systemTests.xml"))
if($errorCode -ne 0) { $host.SetShouldExit($errorCode) }
artifacts:
- path: output\*
- path: output\*\*
deploy_script:
- ps: |
if (!$env:APPVEYOR_PULL_REQUEST_NUMBER -and $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
}