forked from mixxxdj/mixxx
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
152 lines (120 loc) · 5.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
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
---
version: '{branch}-{build}'
skip_tags: true
max_jobs: 1
image:
- Visual Studio 2017
- Ubuntu1804
configuration:
- release-fastbuild
- release
# - debug
platform:
# Disable x86 builds since we only get one concurrent build on AppVeyor and x86
# failures will be caught by Jenkins.
# - x86
- x64
matrix:
exclude:
# Ubuntu doesn't support "release-fastbuild".
- image: Ubuntu1804
configuration: release-fastbuild
# We only want "release-fastbuild" for Windows since "release" consumes too
# much memory due to link-time code generation / whole-program optimization.
- image: Visual Studio 2017
configuration: release
skip_commits:
files:
- doc/
- LICENCE
- README
- README.md
- CHANGELOG
- COPYING
- CODE_OF_CONDUCT.md
for:
########## UBUNTU SPECIFIC CONFIGURATION ##########
-
matrix:
only:
- image: Ubuntu1804
clone_folder: /home/appveyor/projects/mixxx
install:
- sudo apt-get update
- sudo apt-get -y install gdb libavformat-dev libchromaprint-dev libfaad-dev libflac-dev libid3tag0-dev libmad0-dev libmodplug-dev libmp3lame-dev libmp4v2-dev libopus-dev libopusfile-dev libportmidi-dev libprotobuf-dev libqt5opengl5-dev libqt5sql5-sqlite libqt5svg5-dev librubberband-dev libshout3-dev libsndfile1-dev libsqlite3-dev libtag1-dev libupower-glib-dev libusb-1.0-0-dev libwavpack-dev portaudio19-dev protobuf-compiler qt5-default qtscript5-dev libqt5x11extras5-dev scons qtkeychain-dev liblilv-dev libsoundtouch-dev
build_script:
- scons -j4 test=1 mad=1 faad=1 ffmpeg=1 opus=1 modplug=1 wv=1 hss1394=0 virtualize=0 debug_assertions_fatal=1 verbose=0 localecompare=1
test_script:
- xvfb-run -- ./mixxx-test --gtest_output=xml:test_results.xml
- xvfb-run -- ./mixxx-test --benchmark
after_test:
- curl -F 'file=@test_results.xml' "https://ci.appveyor.com/api/testresults/junit/$APPVEYOR_JOB_ID"
########## END UBUNTU SPECIFIC CONFIGURATION ##########
########## WINDOWS SPECIFIC CONFIGURATION ##########
-
matrix:
only:
- image: Visual Studio 2017
fast_finish: false # set this flag to true to immediately finish build once one of the jobs fails.
init:
- git config --global core.autocrlf input
# Uncomment the following line to show RDP info at beginning of job
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
clone_folder: c:\projects\mixxx
cache:
- C:\mixxx-buildserver
environment:
ENVIRONMENTS_URL: https://downloads.mixxx.org/builds/buildserver/2.3.x-windows/
ENVIRONMENTS_PATH: C:\mixxx-buildserver
install:
- set /P ENVIRONMENT_NAME=<build/windows/golden_environment
- call set ENVIRONMENT_NAME=%%ENVIRONMENT_NAME:PLATFORM=%platform%%%
- call set ENVIRONMENT_NAME=%%ENVIRONMENT_NAME:CONFIGURATION=%configuration%%%
- cd %TEMP%
- echo *** Downloading precompiled build environment if not in build-cache
- cd %APPVEYOR_BUILD_FOLDER%
- build\windows\install_buildenv.bat %ENVIRONMENTS_URL% %ENVIRONMENT_NAME% %ENVIRONMENTS_PATH%
before_build:
- cd %APPVEYOR_BUILD_FOLDER%
build_script:
- build\appveyor\build_mixxx.bat %platform% %configuration% %ENVIRONMENTS_PATH%\%ENVIRONMENT_NAME%
test_script:
- echo *** Testing
# Calling mixxx-test under bash to have standard output
# and use stdbuf to unbuffer standard & error output
- bash -c "stdbuf -oL -eL dist*/mixxx-test.exe --gtest_output=xml:test_results.xml 2>&1"
- timeout 5 > NUL
- bash -c "stdbuf -oL -eL dist*/mixxx-test.exe --benchmark 2>&1"
- timeout 5 > NUL
after_test:
- ps: (new-object net.webclient).UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\test_results.xml))
artifacts:
- path: '*.exe'
- path: '*.msi'
on_finish:
# Uncomment the following line if you don't want the build VM to be destroyed
# and be able to RDP on it until a special “lock” file on VM desktop is deleted
# The RDP session is limited by overall build time (60 min).
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
########## END WINDOWS SPECIFIC CONFIGURATION ##########
on_success:
- echo "*** SUCCESS ***"
on_failure:
- echo "*** FAILURE ***"
on_finish:
- echo "*** DONE ***"
deploy:
- provider: Environment
name: downloads.mixxx.org
notifications:
- provider: Webhook
url: https://mixxx.zulipchat.com/api/v1/messages
method: POST
content_type: application/x-www-form-urlencoded
headers:
Authorization:
secure: 95cbVBcC4rogjE5VNdhuYm8cnjPF8+7SeQXySqcxAqrFZxK+/Kcn3Q2hRb2iZfUEKZ+EdCYwx7EbpZdSiZc5goAuJT+/QXXT/Ls+fzc+eSy4Sz1Ic5t2BjLhmYZLdnBL3uIVceNSb8GzYPQx0+xy7g==
on_build_success: true
on_build_failure: true
on_build_status_changed: true
body: "type=stream&to=appveyor&subject={{projectName}} Build {{buildVersion}} {{status}}&content=Build {{buildVersion}} {{status}}{{#isPullRequest}} (PR #{{pullRequestId}}) {{/isPullRequest}}{{#failed}} :cross_mark:{{/failed}}{{#passed}} :check_mark:{{/passed}} {{buildUrl}}"