forked from rism-digital/verovio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
119 lines (110 loc) · 2.96 KB
/
.travis.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
branches:
only:
- develop
sudo: false
os: linux
dist: bionic
language: cpp
git:
depth:
3
env:
global:
- COMMIT_AUTHOR_EMAIL: "$(git log -1 --pretty=format:'%aE')" # TODO: switch author email back to: "[email protected]" if necessary
- SHA: "$(git rev-parse --verify HEAD)"
# repos
- EMSCRIPTEN_REPOSITORY: "https://github.com/emscripten-core/emsdk.git"
- VEROVIO_REPOSITORY: "https://${GH_TOKEN}@github.com/rism-ch/verovio"
- VEROVIO_ORG_REPOSITORY: "https://${GH_TOKEN}@github.com/rism-ch/verovio.org"
# branches
- BUILD_BRANCH: develop
- GH_PAGES_BRANCH: gh-pages
- TEMPORARY_OUTPUT_BRANCH: gh-pages-update-toolkit-${SHA}
# directories
- CURRENT_PATH: "$(pwd)"
- EMSCRIPTEN_DIRECTORY: "emsdk"
- GH_PAGES_DIRECTORY: "gh-pages"
- OUTPUT_DIRECTORY: "${CURRENT_PATH}/${GH_PAGES_DIRECTORY}"
# cache emscripten installation, tools build and output directory to be used throughout different stages
cache:
directories:
- $EMSCRIPTEN_DIRECTORY
- $GH_PAGES_DIRECTORY
- tools
# define order of stages
# conditions for any stage can be included here
stages:
- build-c++
- precache
- build-toolkit
- deploy
jobs:
include:
#################
# BUILD-C++ STAGE
#################
# tests builds on osx and on linux with g++
- stage: build-c++
name: osx-xcode-11.1
os: osx
osx_image: xcode11.1
script:
- cd tools
- cmake ../cmake
- make -j 8
- name: linux-g++
os: linux
script:
- cd tools
- cmake ../cmake
- make -j 8
################
# PRECACHE STAGE
################
# precaches the emscripten installation, gh-pages, and make-build
# has to come before "build-toolkit" stage
- stage: precache
name: "Precache emscripten installation, make build and gh-pages"
os: linux
script:
- ./travis/ci_precache.sh
#####################
# BUILD-TOOLKIT STAGE
#####################
# builds toolkit with different options in parallel
# all "substages" have to use the same stage id ("build-toolkit")
- stage: build-toolkit
name: "no humdrum"
os: linux
script:
- ./travis/ci_build-toolkit.sh nohumdrum
- name: "no humdrum light"
os: linux
script:
- ./travis/ci_build-toolkit.sh light
- name: "no humdrum wasm"
os: linux
script:
- ./travis/ci_build-toolkit.sh wasm
- name: "default (with humdrum)"
os: linux
script:
- travis_wait 30 ./travis/ci_build-toolkit.sh default
##############
# DEPLOY stage
##############
# deploys toolkit and doxygen builds in parallel
- stage: deploy
name: toolkit
os: linux
skip_cleanup: true
script:
- ./travis/ci_deploy-toolkit.sh
- name: doxygen
os: linux
addons:
apt:
packages:
- doxygen
script:
- ./travis/ci_deploy-doxygen.sh