-
Notifications
You must be signed in to change notification settings - Fork 15
/
appveyor.yml
160 lines (132 loc) · 3.67 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
####
# General Config
####
# The version number being built. Should match version in CMake/at runtime.
# This is the ACTUAL version number used when uploading to GitHub Releases.
environment:
APP_VERSION: 0.0.9
# Appveyor version number - used only for the unique build version required by Appveyor.
version: $(APP_VERSION)-{build}
# The goal is to build and deploy occasional release milestones to GitHub.
# Rather than building every commit to master, we'll only build when merging into release branch.
branches:
only:
- release
# Do not build tags.
skip_tags: true
# I think this is a limitation of the free plan anyway!
max_jobs: 1
####
# Environment Config
####
# Build for Windows, Mac, and Linux.
image:
- macos
- Ubuntu
- Visual Studio 2022
# Init script runs before cloning the repo.
#init:
# - echo Init
# Install scripts run after cloning completes.
#install:
# - echo Install
####
# Build & Tests Config
####
# Can be one of (Debug, Release, RelWithDebInfo, MinSizeRel) - from CMake.
configuration: RelWithDebInfo
for:
-
matrix:
only:
- image: macos
before_build:
- sh: cmake -B build_appveyor -G Xcode
build_script:
- sh: cmake --build build_appveyor --target deploy --config ${CONFIGURATION}
before_test:
- sh: cmake --build build_appveyor --target tests --config ${CONFIGURATION}
test_script:
- sh: ./build_appveyor/Tests/${CONFIGURATION}/tests
-
matrix:
only:
- image: Ubuntu
before_build:
- sh: sudo apt-get install mesa-common-dev libgl1-mesa-dev
- sh: cmake -B build_appveyor -DCMAKE_BUILD_TYPE=${CONFIGURATION}
build_script:
- sh: cmake --build build_appveyor --target deploy
before_test:
- sh: cmake --build build_appveyor --target tests
test_script:
- sh: ./build_appveyor/Tests/tests
-
matrix:
only:
- image: Visual Studio 2022
before_build:
- cmd: cmake -B build_appveyor -G "Visual Studio 17 2022" -A Win32
build_script:
- cmd: cmake --build build_appveyor --target deploy --config %CONFIGURATION%
before_test:
- cmd: cmake --build build_appveyor --target tests --config %CONFIGURATION%
test_script:
- cmd: build_appveyor\Tests\%CONFIGURATION%\tests.exe
# Scripts to run after build.
#after_build:
# - echo After Build
# Scripts to run after tests.
#after_test:
# - echo After Tests
####
# Artifact Config
####
# Build scripts will leave ready-to-deploy app in "Bin" folder
artifacts:
- path: Bin/$(CONFIGURATION)/*.zip
name: Game
####
# Deployment Config
####
# Scripts to run before deployment.
#before_deploy:
# - echo Before Deploy
# Deploy to GitHub Releases
deploy:
- provider: GitHub
artifact: Game
release: 'v$(APP_VERSION)'
description: 'GEngine version $(APP_VERSION)'
force_update: true # allows multiple jobs to upload artifacts to same GitHub release
auth_token:
secure: +FLIpiKwFVgZmhUkmcDZK9P727eAjboXu+dfZ5G8xnNETVhPbRkIV57ckpcSr6Rz
# Scripts to run after deployment.
#after_deploy:
# - echo After Deploy
####
# Handlers
####
# Scripts to run on successful build completion.
on_success:
- echo Success
# Scripts to run on build failure.
on_failure:
- echo Failure
# Scripts to run on build finish (success or failure).
on_finish:
- echo Finish
####
# Notifications
####
# A way to send a notif (email, Slack, etc) when a build finishes.
# Just to test it out, I'll send myself an email on build status change.
notifications:
- provider: Email
to:
# Exclude custom subject/message to use the default ones.
#subject: 'Build {{status}}: {{projectName}} {{buildVersion}}'
#message: "{{message}}, {{commitId}}"
on_build_failure: true
on_build_status_changed: true