forked from cppfw/svgren
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
174 lines (156 loc) · 7.38 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
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
# build only master branch and version tags
branches:
only:
- master
- /^\d*\.\d*\.\d*$/
sudo: required
services:
- docker
language: cpp
dist: xenial
os: linux
addons:
apt:
sources:
- sourceline: 'deb http://dl.bintray.com/igagis/ubuntu xenial main'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x379CE192D401AB61'
update: true
packages:
- binfmt-support
- qemu-user-static
- myci
matrix:
include:
- name: macosx
os: osx
compiler: clang
osx_image: xcode8.3
- name: ios
os: osx
compiler: clang
osx_image: xcode8.3
- name: android
language: android
android:
components:
- platform-tools
- tools
- build-tools-25.0.2
- android-25
# - sys-img-armeabi-v7a-android-22
- extra-android-m2repository
env:
global:
# Encrypted MYCI_BINTRAY_API_KEY for publishing to bintray.
- secure: "OJocouNRDiMlPR+BU9sZlbmFwa5Fj9t4GR6Bt8YBVKiab3JFJxvuA2MrSYTA8ZG97etSeL3d72zOw2j+CJrDYLOg9K/Y3tG6V8nsXvDY3hOwaLO7cRmjwbXLPg9/a0Fo/iA9ZU8d3ZrW+YT2n+fSUKlcDVFII4GvI26KBfMCrADqEIPMev0nZYu4dAQC2KeUJjICU1sPboayhx+baEn2z4duLas7MmtJL6jkS/SZ3lSricy/hffrlGfEsUGxIkP/qqislgBwb25dFSDP3w8oTPLGTVibhSfcp2BUcLszGrVVdvgEQKGUw5+jR/FHzsKTriI8XHv3DtZ7VONf89e61B82SB8R1+/2XoTX1R/J8Rzn/xKApQR1ylZ9kxgLdQ3nhD+VNrjIMeIfRmu64KOyXnxs0GDh/85BSx4LsSh7VjM5WiAOjJ7Ao9s5Vub6cPA/A3f6nLiVOekcWSJLnsg4aK/+VbhcLMXtDQ0bO1Dp2TSY5WqOlBQomyY9S36fMTjR7z/R6d7JValfTb7891+2XiG82OAbgm1mhs/3ALyGMTYOAhpg32q1v8/EjuEeyMfoBB3F6HdW2G4UCjDRHLxFtVm0J1A+egn2laHPRmg4jqwWOsW/EcP2997T76XfzQ51hCMvnj7tiUUkBf69NXr3JXB2yWyAgDBchpw2MvAgbY8="
# Encrypted HOMEBREW_GITHUB_ACCESS_TOKEN for publishing to homebrew-tap.
- secure: "MA8RgPaPO/y7kiGgjssaMuVG9XFxEXsMfUes1+QKvvmgTH6haINpdhnQfS3RO4mw55fXpQfjChcf96FSGwaxAoaklyjnmW/Soo49woNIMFRMZBlheffHLbDFBIic7CjneRaYDKkrqEB7XqO0kX71bln46GT4fTuYMARCgnhKT+1aojrCvABflHM+y0cFNo36z/3Hb5sL/fqhrXHf/z/fCGB5W4VxtxEy8pzHGQi8mDbhI0c8Lvtp5htIjxnBFsU0Llt8vxiJ95Dd5o2LGdZBjbvmC2BkzaT2xkhBSdwybBnBo64BAZum3g/zXTsj9A5QPETqCmzmCrXJ1vkXS83khEGGhaLgDuXkZxcvPkS3qbHyplwuZPF9xKrclQa705qMUhHyXjgW0Nn04tk/4aZDgtZBvDI8IszMHjB/87SI33BT5q08hic/9uIX47gGLgEaNJ0AffML91QiLwX22McUsQqlQMA3JXLNVlOG24fBcHO91w0D6j5n3pjpjf5o6ZLRCZ9FtniZ52YvMZPMmPT5RUcyO9Nvl2G5Ch45xr0XNNqO4aTuaslUD8HKqAYctaudgN2BExzdQhJZFtoDDdrvyp12FnkC3WwO9n2yAuJ2eZiCv8IYuXepFKA2asLjNsnggtOevy+afsZBvuiK1xNmsIEbadVa5CewQZijzLQ40Og="
- MYCI_GIT_USERNAME=igagis
- MYCI_GIT_ACCESS_TOKEN=$HOMEBREW_GITHUB_ACCESS_TOKEN
- USE_ANDROID_NDK_VERSION=15c
- PACKAGE_NAME=svgren
matrix:
- OS_REL=xenial OS=ubuntu DOCKER_IMAGE=$OS:$OS_REL PACKAGE_TYPE=deb
- OS_REL=bionic OS=ubuntu DOCKER_IMAGE=$OS:$OS_REL PACKAGE_TYPE=deb
- OS_REL=stretch OS=debian DOCKER_IMAGE=$OS:$OS_REL PACKAGE_TYPE=deb
- OS_REL=stretch OS=raspbian DOCKER_IMAGE=igagis/$OS:$OS_REL PACKAGE_TYPE=deb
before_install:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ -z "$TRAVIS_JOB_NAME" ]; then
docker run --name ccc -v $TRAVIS_BUILD_DIR/..:/build -w /build/$(basename $TRAVIS_BUILD_DIR) -it -d $DOCKER_IMAGE bash &&
if [ "$PACKAGE_TYPE" == "deb" ]; then
docker exec ccc apt update &&
docker exec ccc apt install -y dirmngr &&
docker exec ccc bash -c "echo 'deb http://dl.bintray.com/igagis/$OS $OS_REL main' > /etc/apt/sources.list.d/igagis.list" &&
docker exec ccc apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61 &&
docker exec ccc apt update &&
docker exec ccc apt install -y devscripts equivs myci &&
myci-deb-prepare.sh;
fi;
fi
- if [ "$TRAVIS_JOB_NAME" == "macosx" ]; then
rvm install ruby-2.3.3 &&
rvm use ruby-2.3.3 &&
brew update > /dev/null &&
brew tap igagis/tap &&
brew update > /dev/null &&
brew install prorab prorab-extra myci libutki libsvgdom cairo libkolme libpng;
fi
- if [ "$TRAVIS_JOB_NAME" == "ios" ]; then
rvm install ruby-2.3.3 &&
rvm use ruby-2.3.3 &&
brew update > /dev/null &&
brew tap igagis/tap &&
brew update > /dev/null &&
brew install myci &&
sudo gem install cocoapods &&
pod repo add --silent igagis https://$MYCI_GIT_USERNAME:$MYCI_GIT_ACCESS_TOKEN@github.com/igagis/cocoapods-repo.git &&
pod install --project-directory=ios;
fi
# download and install android NDK
- if [ "$TRAVIS_JOB_NAME" == "android" ]; then
export TERM=dumb &&
curl -L https://dl.google.com/android/repository/android-ndk-r$USE_ANDROID_NDK_VERSION-linux-x86_64.zip -O &&
unzip ./android-ndk-r$USE_ANDROID_NDK_VERSION-linux-x86_64.zip > /dev/null &&
rm android-ndk-r$USE_ANDROID_NDK_VERSION-linux-x86_64.zip &&
export ANDROID_NDK_HOME=`pwd`/android-ndk-r$USE_ANDROID_NDK_VERSION &&
export LOCAL_ANDROID_NDK_HOME="$ANDROID_NDK_HOME" &&
export LOCAL_ANDROID_NDK_HOST_PLATFORM="linux-x86_64" &&
export PATH=$PATH:${ANDROID_NDK_HOME} &&
env;
fi
install:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ -z "$TRAVIS_JOB_NAME" ]; then
docker exec ccc myci-deb-install-build-deps.sh;
fi
before_script:
- if [ "$TRAVIS_JOB_NAME" == "ios" ]; then
curl -L https://github.com/zackslash/Xcode-Proj-Adder/raw/master/bin/XcodeProjAdder -O &&
chmod +x XcodeProjAdder &&
(cd ios && ../XcodeProjAdder -XCP tests.xcodeproj -SCSV `echo $(find ../src -type f -name *.cpp) | sed -n -e 's/ /,/gp'`);
fi
script:
- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ -z "$TRAVIS_JOB_NAME" ]; then
docker exec ccc dpkg-buildpackage -us -uc;
fi
- if [ "$TRAVIS_JOB_NAME" == "macosx" ]; then
make && make test;
fi
- if [ "$TRAVIS_JOB_NAME" == "ios" ]; then
xcodebuild -workspace ios/tests.xcworkspace -scheme tests CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO;
fi
- if [ "$TRAVIS_JOB_NAME" == "android" ]; then
(cd android && ./gradlew build) &&
myci-apply-version.sh -v `myci-deb-version.sh debian/changelog` android/*.pom.in &&
myci-apply-version.sh -v `myci-deb-version.sh debian/changelog` android/*.aar.in --filename-only;
fi
before_deploy:
- myci-apply-version.sh -v `myci-deb-version.sh debian/changelog` travis_bintray_*.json.in
deploy:
- provider: script
skip_cleanup: true
on:
tags: true
condition: $PACKAGE_TYPE = deb && -z "$TRAVIS_JOB_NAME"
script: myci-deploy-debian-bintray.sh -u igagis -r $OS -p $PACKAGE_NAME -c main -d $OS_REL $TRAVIS_BUILD_DIR/../*.deb
- provider: bintray
skip_cleanup: true
on:
tags: true
condition: $TRAVIS_JOB_NAME = android
file: travis_bintray_android.json
user: igagis
key:
secure: "dBBwUEdcvzD+pVtUpQPjH8Cgelf3fjumDJl4DV3BJtY86dziDH+5X7N6WVUnrznNmLkOM+UqTVOntsgcKRHEvgxhiE4ArGITPdPWApfm3fYQCzqOHa+SN6jLuF6cRehTj8qEUy5CM3/hb/D4KRDOQkRJ/q8AeS7tgmQkM5qJdzfg6BxPmXKUkdiCIEghVw/6YeIXtx7mlRDfidPf7zufGku4R+TPTgY/eCf/yKgNY8SLaRMe3UFtU8uvn0l449frH+haEpMAKaSautHbt/DAD0uWw4nWxgkkLVpmivjOZNCOmlC0txJcVA5DNaOai296qwD+Hx9KoPjwRC1+PDXQai1VHq/NzfqCDDIdPwvXSAvJfiUF4aHe/AThOHSZAlskGksiNJAlvSPmw/+GlUYkwt5zpp5cp8J1fPqdsGEuB+kdwKWlYarcIYYzvgsw1d2vq4h/v10l9cbri8Ve7iWZxWyJZBYpRGX0G1p92tZ5hu9dROQZgJGv2f1d0iVSW3pbL57jWIrAHfusCJNkC65N/C5/SGJt9aot0ggPh+CEwv5855SAmAdOagv/LM/9v2GEARWnd8FoL0O06k7l4LLNKPp1PrdrQVRnjiiCTOqcBXGypa8w4sqXVLMYdSFBU7FoYalXBiI8gN96nInbTSWOJPQpJ/z+xavzyjTNN+z+RtA="
dry-run: false
- provider: script
skip_cleanup: true
script: myci-deploy-homebrew.sh -t igagis/tap
on:
tags: true
condition: $TRAVIS_JOB_NAME = macosx
- provider: script
skip_cleanup: true
script: rvm 2.3.3 do myci-deploy-cocoapods.sh -r igagis
on:
tags: true
condition: $TRAVIS_JOB_NAME = ios