# Appveyor configuration file for EPICS Base 7 builds # (see also https://github.com/epics-base/ci-scripts) # Version format version: base-{branch}-{build} #---------------------------------# # build cache # #---------------------------------# # The AppVeyor cache allowance is way too small (1GB per account across all projects, branches and jobs) # to be used for the dependency builds. cache: - C:\Users\appveyor\.tools #---------------------------------# # repository cloning # #---------------------------------# # Called at very beginning, before repo cloning init: # Set autocrlf to make batch files work - git config --global core.autocrlf true # Set clone depth (do not fetch complete history) clone_depth: 5 #---------------------------------# # build matrix configuration # #---------------------------------# image: Visual Studio 2015 # Build Configurations: dll/static, regular/debug configuration: - dynamic - static - dynamic-debug - static-debug # Environment variables: compiler toolchain, base version, setup file, ... environment: # common / default variables for all jobs SETUP_PATH: .ci-local:.ci BASE: SELF EPICS_TEST_IMPRECISE_TIMING: YES matrix: - CMP: vs2019 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - CMP: vs2017 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - CMP: vs2015 - CMP: vs2013 - CMP: vs2012 - CMP: vs2010 - CMP: gcc APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 # TODO: static linking w/ readline isn't working. Bypass auto-detect COMMANDLINE_LIBRARY: EPICS # Platform: processor architecture platform: - x86 - x64 # Matrix configuration: exclude sets of jobs matrix: exclude: # VS2012 and older installs don't have the 64 bit compiler - platform: x64 CMP: vs2012 - platform: x64 CMP: vs2010 # Exclude more jobs to reduce build time # Skip 32-bit for "middle-aged" compilers - platform: x86 CMP: vs2017 - platform: x86 CMP: vs2015 # MinGW debug builds use the same libraries, unlike VS - configuration: dynamic-debug CMP: gcc - configuration: static-debug CMP: gcc #---------------------------------# # building & testing # #---------------------------------# install: - cmd: git submodule update --init --recursive - cmd: pip install git+https://github.com/mdavidsaver/ci-core-dumper#egg=ci-core-dumper - cmd: python .ci/cue.py prepare build_script: - cmd: python .ci/cue.py build test_script: - cmd: python -m ci_core_dumper install - cmd: python .ci/cue.py -T 20M test on_finish: - ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name } - cmd: python .ci/cue.py -T 5M test-results on_failure: - cmd: python -m ci_core_dumper report #---------------------------------# # debugging # #---------------------------------# ## if you want to connect by remote desktop to a failed build, uncomment these lines ## note that you will need to connect within the usual build timeout limit (60 minutes) ## so you may want to adjust the build matrix above to just build the one of interest # print the connection info #init: # - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) # block a failed build (until the watchdog barks) #on_failure: # - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) #---------------------------------# # notifications # #---------------------------------# notifications: - provider: Email to: - core-talk@aps.anl.gov on_build_success: false - provider: GitHubPullRequest