forked from eudaq/eudaq
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
182 lines (150 loc) · 10.1 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
version: 2.0.0.{build}
pull_requests:
do_not_increment_build_number: true
branches:
only:
- master
- v1.7-dev
os: Visual Studio 2017
configuration: Release
# - x64
platform: x86
# comments on options:
# BIFAHCAL: Requires cactus and does not compile properly on Windows
#
environment:
matrix:
- build_type: full
ROOTSYS: C:\root
PATH: '%ROOTSYS%\bin;C:\Qt\5.9\msvc2017;C:\Python36;C:\Miniconda36;C:\Miniconda36\\Scripts;%PATH%'
CMAKE_BUILD_TYPE: RelWithDebInfo
EUDAQ_BUILD_EXECUTABLE: ON
EUDAQ_BUILD_GUI: ON
EUDAQ_BUILD_MANUAL: OFF
EUDAQ_BUILD_STDEVENT_MONITOR: ON
EUDAQ_EXTRA_BUILD_NREADER: OFF
EUDAQ_LIBRARY_BUILD_LCIO: ON
EUDAQ_MODULE_BUILD_STD: ON
USER_CALICE_BUILD: OFF
USER_EUDET_BUILD: ON
USER_EUDET_BUILD_NI: ON
USER_EUDET_BUILD_TLU: ON
USER_EXAMPLE_BUILD: ON
USER_ITKSTRIP_BUILD: ON
USER_ITKSTRIP_BUILD_ITSROOT: ON
PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.5"
PYTHON_ARCH: "32"
- build_type: minimum
ROOTSYS: C:\root
PATH: '%ROOTSYS%\bin;C:\Qt\5.9\msvc2017;C:\Python36;C:\Miniconda36;C:\Miniconda36\\Scripts;%PATH%'
CMAKE_BUILD_TYPE: RelWithDebInfo
EUDAQ_BUILD_EXECUTABLE: ON
EUDAQ_BUILD_GUI: ON
EUDAQ_BUILD_MANUAL: OFF
EUDAQ_BUILD_STDEVENT_MONITOR: ON
EUDAQ_EXTRA_BUILD_NREADER: OFF
EUDAQ_LIBRARY_BUILD_LCIO: ON
EUDAQ_MODULE_BUILD_STD: ON
USER_CALICE_BUILD: OFF
USER_EUDET_BUILD: ON
USER_EUDET_BUILD_NI: ON
USER_EUDET_BUILD_TLU: ON
USER_EXAMPLE_BUILD: ON
USER_ITKSTRIP_BUILD: ON
USER_ITKSTRIP_BUILD_ITSROOT: ON
PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.5"
PYTHON_ARCH: "32"
- build_type: library_only
ROOTSYS: C:\root
PATH: '%ROOTSYS%\bin;C:\Qt\5.9\msvc2017;C:\Python36;C:\Miniconda36;C:\Miniconda36\\Scripts;%PATH%'
CMAKE_BUILD_TYPE: RelWithDebInfo
EUDAQ_BUILD_EXECUTABLE: OFF
EUDAQ_BUILD_GUI: OFF
EUDAQ_BUILD_MANUAL: OFF
EUDAQ_BUILD_STDEVENT_MONITOR: OFF
EUDAQ_EXTRA_BUILD_NREADER: OFF
EUDAQ_LIBRARY_BUILD_LCIO: ON
EUDAQ_MODULE_BUILD_STD: ON
USER_CALICE_BUILD: OFF
USER_EUDET_BUILD: OFF
USER_EUDET_BUILD_NI: OFF
USER_EUDET_BUILD_TLU: OFF
USER_EXAMPLE_BUILD: OFF
USER_ITKSTRIP_BUILD: OFF
USER_ITKSTRIP_BUILD_ITSROOT: OFF
PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.5"
PYTHON_ARCH: "32"
cache:
- '%APPVEYOR_BUILD_FOLDER%\extern\ZestSC1'
- '%APPVEYOR_BUILD_FOLDER%\extern\tlufirmware'
- '%APPVEYOR_BUILD_FOLDER%\extern\libusb-win32'
- '%APPVEYOR_BUILD_FOLDER%\extern\alice-its-alpide-software-master-3189f00d7515733d46a61a5ab2606e436df4955b'
- '%APPVEYOR_BUILD_FOLDER%\extern\tinyxml'
init:
# The following line enables the remote desktop connection and show the connection information.
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
install:
#- '"C:\Program Files\Microsoft SDKs\Windows\v10\Bin\SetEnv.cmd" /x86'
# This is a workaround for a whole lot of annoying warnings about non-existing targets.
#- cmd: del "C:\Program Files (x86)\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Xamarin.Common.targets"
# Install Python (from the official .msi of http://python.org) and pip when not already installed.
# This was copied from
- ps: if (-not(Test-Path($env:PYTHON))) { & appveyor\install_python.ps1 }
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
# Check that we have the expected version and architecture for Python
- "python --version"
- "python -c \"import struct; print(struct.calcsize('P') * 8)\""
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
- "python -m pip install --disable-pip-version-check --user --upgrade pip"
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
- "%CMD_IN_ENV% python -m pip install -r appveyor\\dev-requirements.txt"
before_build:
- ps: Write-Host "Downloading root from root.cern.ch"; appveyor\download.ps1 -downloadLocation 'https://root.cern.ch/download/root_v5.34.36.win32.vc12.zip' -storageLocation 'C:\\root_v5.34.36.win32.vc12.zip'; 7z -y x C:\\root_v5.34.36.win32.vc12.zip -oC:\;
- ps: appveyor\install_afs.ps1;
- ps: Restart-Computer -Force
- ps: Start-Sleep -s 10;
build_script:
- ps: If( Test-Path("\\afs\desy.de\group\telescopes\")) { Write-Host("Afs seems to work properly")} ElseIf ( Test-Path("\\cern.ch\")) {Write-Host("Afs seems to work properly, but desy afs down?"); } Else { Write-Host("Something wrong with the afs installation"); }
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
- ps: If (Test-Path ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\ZestSC1")) {Write-Host ("Reusing cached ZestSC1 " + "${env:APPVEYOR_BUILD_FOLDER}" + "\extern\ZestSC1" + " instead of copying from AFS")} Else {Write-Host "Copying ZestSC1 from AFS"; Copy-item "\\afs\desy.de\group\telescopes\tlu\ZestSC1" -destination ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\ZestSC1") -recurse}
- ps: If (Test-Path ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\tlufirmware")) {Write-Host ("Reusing cached tlufirmware " + "${env:APPVEYOR_BUILD_FOLDER}" + "\extern\tlufirmware" + " instead of copying from AFS")} Else {Write-Host "Copying tlufirmware from AFS"; Copy-item "\\afs\desy.de\group\telescopes\tlu\tlufirmware" -destination ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\tlufirmware") -recurse}
- ps: If (Test-Path ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\libusb-win32")) {Write-Host ("Reusing cached libusb-win32 " + "${env:APPVEYOR_BUILD_FOLDER}" + "\extern\libusb-win32" + " instead of downloading from sourcefourge (which can be sometimes unreliable...)")} Else {Write-Host "Downloading libusb-win32 from sourceforge"; appveyor\download.ps1 -downloadLocation 'https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip' -storageLocation 'C:\\libusb-win32-bin-1.2.6.0.zip'; $zipargument = ("-o" + "${env:APPVEYOR_BUILD_FOLDER}" + "\extern\"); 7z -y x C:\\libusb-win32-bin-1.2.6.0.zip $zipargument; Rename-Item -path ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\libusb-win32-bin-1.2.6.0") -newName ("${env:APPVEYOR_BUILD_FOLDER}" + "\extern\libusb-win32")}
- ps: If (${env:BUILD_cmspixel} -eq "ON") { Write-Host("Installing pxarcore as required by cmspixel producer"); . ".\appveyor\install_pxar.ps1" }
- ps: If (${env:BUILD_palpidefs} -eq "ON") { Write-Host("Installing palpidefs drivers as required by palpidefs producer"); . ".\appveyor\install_tinyxml.ps1";. ".\appveyor\install_palpidefs_driver.ps1" }
- ps: If (${env:BUILD_palpidefs} -eq "ON") { [Environment]::SetEnvironmentVariable("PALPIDEFS_SPECIAL_PARAMETERS", "-DCMAKE_PALPIDEFS_DRIVER_INCLUDE:FILEPATH=%APPVEYOR_BUILD_FOLDER%\extern\alice-its-alpide-software-master-3189f00d7515733d46a61a5ab2606e436df4955b\pALPIDEfs-software -DUSE_TINYXML=on -DUSE_ROOT=on", "Process"); } Else { [Environment]::SetEnvironmentVariable("PALPIDEFS_SPECIAL_PARAMETERS", "", "Process"); }
# creating installation folder
- mkdir C:\eudaq_installation_folder
# creating build folder
- mkdir C:\eudaq_build_folder
- cd C:\eudaq_build_folder
- cmd: echo -DEUDAQ_INSTALL_PREFIX=C:/eudaq_installation_folder/ -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% -DEUDAQ_BUILD_EXECUTABLE=%EUDAQ_BUILD_EXECUTABLE% -DEUDAQ_BUILD_GUI=%EUDAQ_BUILD_GUI% -DEUDAQ_BUILD_MANUAL=%EUDAQ_BUILD_MANUAL% -DEUDAQ_BUILD_STDEVENT_MONITOR=%EUDAQ_BUILD_STDEVENT_MONITOR% -DEUDAQ_EXTRA_BUILD_NREADER=%EUDAQ_EXTRA_BUILD_NREADER% -DEUDAQ_LIBRARY_BUILD_LCIO=%EUDAQ_LIBRARY_BUILD_LCIO% -DEUDAQ_MODULE_BUILD_STD=%EUDAQ_MODULE_BUILD_STD% -DUSER_CALICE_BUILD=%USER_CALICE_BUILD% -DUSER_EUDET_BUILD=%USER_EUDET_BUILD% -DUSER_EUDET_BUILD_NI=%USER_EUDET_BUILD_NI% -DUSER_EUDET_BUILD_TLU=%USER_EUDET_BUILD_TLU% -DUSER_EXAMPLE_BUILD=%USER_EXAMPLE_BUILD% -DUSER_ITKSTRIP_BUILD=%USER_ITKSTRIP_BUILD% -DUSER_ITKSTRIP_BUILD_ITSROOT=%USER_ITKSTRIP_BUILD_ITSROOT% %APPVEYOR_BUILD_FOLDER%
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
- cmd: cmake -DEUDAQ_INSTALL_PREFIX=C:/eudaq_installation_folder/ -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% -DEUDAQ_BUILD_EXECUTABLE=%EUDAQ_BUILD_EXECUTABLE% -DEUDAQ_BUILD_GUI=%EUDAQ_BUILD_GUI% -DEUDAQ_BUILD_MANUAL=%EUDAQ_BUILD_MANUAL% -DEUDAQ_BUILD_STDEVENT_MONITOR=%EUDAQ_BUILD_STDEVENT_MONITOR% -DEUDAQ_EXTRA_BUILD_NREADER=%EUDAQ_EXTRA_BUILD_NREADER% -DEUDAQ_LIBRARY_BUILD_LCIO=%EUDAQ_LIBRARY_BUILD_LCIO% -DEUDAQ_MODULE_BUILD_STD=%EUDAQ_MODULE_BUILD_STD% -DUSER_CALICE_BUILD=%USER_CALICE_BUILD% -DUSER_EUDET_BUILD=%USER_EUDET_BUILD% -DUSER_EUDET_BUILD_NI=%USER_EUDET_BUILD_NI% -DUSER_EUDET_BUILD_TLU=%USER_EUDET_BUILD_TLU% -DUSER_EXAMPLE_BUILD=%USER_EXAMPLE_BUILD% -DUSER_ITKSTRIP_BUILD=%USER_ITKSTRIP_BUILD% -DUSER_ITKSTRIP_BUILD_ITSROOT=%USER_ITKSTRIP_BUILD_ITSROOT% %APPVEYOR_BUILD_FOLDER%
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
- cmd: msbuild INSTALL.vcxproj
after_build:
- cmd: 7z a eudaq_win32_%build_type%_%APPVEYOR_REPO_TAG_NAME%.zip %APPVEYOR_BUILD_FOLDER%
- cmd: appveyor PushArtifact eudaq_win32_%build_type%_%APPVEYOR_REPO_TAG_NAME%.zip
deploy:
provider: GitHub
auth_token:
secure: "FXNTEGEjMMl3FZLCp4cXO0Szn3CVs4lEf+pPxz6vbb9q/PHkD5N2gAgOR+zljtll"
artifact: eudaq_win32_%build_type%_%APPVEYOR_REPO_TAG_NAME%.zip
draft: false
prerelease: false
force_update: true
on:
appveyor_repo_tag: true
build_type: minimum
on_finish:
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))