forked from helio-fm/helio-sequencer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
113 lines (104 loc) · 4.04 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
language: generic
sudo: false
notifications:
email: false
git:
depth: 10
submodules_depth: 10
branches:
only:
- master
- develop
- /^\d+\.?\d+\.?\d*$/
addons_shortcuts:
addons_clang7: &clang7
ssh_known_hosts: helio.fm
apt:
packages: [ 'libc++-dev', 'libfreetype6-dev', 'libx11-dev', 'libxinerama-dev', 'libxrandr-dev', 'libxcursor-dev', 'libxcomposite-dev', 'mesa-common-dev', 'freeglut3-dev', 'libcurl4-gnutls-dev+', 'libasound2-dev', 'libjack-dev', 'unzip', 'xvfb' ]
addons_gcc6: &gcc6
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'g++-6', 'gcc-6', 'libfreetype6-dev', 'libx11-dev', 'libxinerama-dev', 'libxrandr-dev', 'libxcursor-dev', 'libxcomposite-dev', 'mesa-common-dev', 'freeglut3-dev', 'libcurl4-gnutls-dev+', 'libasound2-dev', 'libjack-dev', 'unzip', 'xvfb' ]
# TODO test building with -static-libstdc++ or -static-libgcc on older systems
addons_gcc4: &gcc4
apt:
packages: [ 'libfreetype6-dev', 'libx11-dev', 'libxinerama-dev', 'libxrandr-dev', 'libxcursor-dev', 'libxcomposite-dev', 'mesa-common-dev', 'freeglut3-dev', 'libcurl4-gnutls-dev+', 'libasound2-dev', 'libjack-dev', 'unzip', 'xvfb' ]
addons_deploy: &deploy
ssh_known_hosts: helio.fm
matrix:
include:
- name: "gcc 4, debug build x64"
os: linux
dist: trusty
addons: *gcc4
env: PLATFORM=linux CONFIG=Debug DISPLAY=localhost:1.0 CFLAGS=-fno-pie
- name: "gcc 6, debug build x64"
os: linux
dist: trusty
addons: *gcc6
env: PLATFORM=linux CC=gcc-6 CXX=g++-6 CONFIG=Debug DISPLAY=localhost:1.0 CFLAGS=-fno-pie
- name: "clang 7, release build x64, deploy"
os: linux
dist: xenial
addons: *clang7
env: DEPLOY=true PLATFORM=linux CC=clang CXX=clang++ CONFIG=Release64 DISPLAY=localhost:1.0 CFLAGS=-stdlib=libc++ LDFLAGS=-stdlib=libc++
- name: "xcode 10.1 mac, release and deploy"
os: osx
osx_image: xcode10.1
xcode_sdk: macosx10.14
addons: *deploy
env: DEPLOY=true PLATFORM=osx
- name: "xcode 10.1 ios, release and deploy"
os: osx
osx_image: xcode10.1
xcode_sdk: iphoneos
addons: *deploy
env: DEPLOY=true PLATFORM=ios
- name: "android 21, release and deploy"
os: linux
dist: trusty
language: android
jdk: oraclejdk8
addons: *deploy
env: DEPLOY=true PLATFORM=android ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle
android:
components:
- tools
- platform-tools
- build-tools-28.0.3
- android-28
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
before_script:
- bash ${TRAVIS_BUILD_DIR}/Projects/Deployment/Travis/setup-${PLATFORM}.sh
script:
- if [[ "${PLATFORM}" == "linux" ]]; then
xvfb-run -a bash -c 'cd Projects/LinuxMakefile && make all strip';
fi
- if [[ "${PLATFORM}" == "android" ]]; then
cd Projects/Android && chmod +x gradlew && ./gradlew clean assembleRelease;
fi
- if [[ "${PLATFORM}" == "osx" && "${TRAVIS_PULL_REQUEST}" == "false" ]]; then
xcodebuild -project Projects/macOS/Helio.xcodeproj -configuration Release -scheme 'Helio - App' -archivePath /tmp/archive archive;
fi
- if [[ "${PLATFORM}" == "ios" && "${TRAVIS_PULL_REQUEST}" == "false" ]]; then
xcodebuild -project Projects/iOS/Helio.xcodeproj -configuration Release -scheme 'Helio - App' -archivePath /tmp/archive archive;
fi
before_deploy:
- openssl aes-256-cbc -K $encrypted_e6d7a52b0113_key -iv $encrypted_e6d7a52b0113_iv -in ${TRAVIS_BUILD_DIR}/Projects/Deployment/Travis/deploy-rsa.enc -out /tmp/deploy_rsa -d
- eval "$(ssh-agent -s)"
- chmod 600 /tmp/deploy_rsa
- ssh-add /tmp/deploy_rsa
deploy:
provider: script
skip_cleanup: true
script: bash ${TRAVIS_BUILD_DIR}/Projects/Deployment/Travis/deploy-${PLATFORM}.sh
on:
all_branches: true
repo: helio-fm/helio-workstation
condition: ${DEPLOY} = true