-
Notifications
You must be signed in to change notification settings - Fork 115
/
.travis.yml
131 lines (121 loc) · 3.91 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
language: generic
sudo: false
notifications:
email: false
git:
depth: 10
submodules_depth: 10
branches:
only:
- master
- develop
- /^\d+\.?\d+\.?\d*$/
stages:
- name: Test
- name: Deploy
if: (type = push || type = api) && fork = false
addons_shortcuts:
addons_gcc9: &gcc9
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' ]
ssh_known_hosts: helio.fm
addons_clang16: &clang16
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' ]
ssh_known_hosts: helio.fm
addons_deploy: &deploy
ssh_known_hosts: helio.fm
jobs:
include:
- name: "gcc 9, debug build x64"
stage: Test
os: linux
dist: focal
addons: *gcc9
env: BUILD_TYPE=linux CONFIG=Tests CFLAGS=-fno-pie LDFLAGS=-no-pie
- name: "gcc 9, release build x64"
stage: Deploy
os: linux
dist: focal
addons: *gcc9
env: BUILD_TYPE=linux CONFIG=Release64 CFLAGS=-fno-pie LDFLAGS=-no-pie
- name: "xcode 10.1 mac, release build"
stage: Deploy
os: osx
osx_image: xcode13.1
xcode_sdk: macosx11.6
addons: *deploy
env: BUILD_TYPE=osx
# - name: "xcode 11.6 ios, release build"
# stage: Deploy
# os: osx
# osx_image: xcode11.6
# xcode_sdk: iphoneos
# addons: *deploy
# env: BUILD_TYPE=ios
- name: "android 21, release build"
stage: Deploy
os: linux
dist: trusty
language: android
sudo: true
jdk: oraclejdk8
addons: *deploy
env: BUILD_TYPE=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/
- name: "deploy docs"
stage: Deploy
os: linux
dist: focal
language: rust
rust: stable
cache: cargo
addons: *deploy
env: BUILD_TYPE=docs
before_script:
- bash ${TRAVIS_BUILD_DIR}/Projects/Deployment/Travis/setup-${BUILD_TYPE}.sh
script:
- if [[ "${BUILD_TYPE}" == "linux" ]]; then
cd Projects/LinuxMakefile && make all strip;
if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Test" ]]; then
build/helio;
fi
fi
- if [[ "${BUILD_TYPE}" == "android" ]]; then
cd Projects/Android && chmod +x gradlew && ./gradlew clean assembleRelease;
fi
- if [[ "${BUILD_TYPE}" == "osx" ]]; then
xcodebuild -project Projects/macOS/Helio.xcodeproj -configuration Release -scheme 'Helio - App' -archivePath /tmp/archive archive;
fi
- if [[ "${BUILD_TYPE}" == "ios" ]]; then
xcodebuild -project Projects/iOS/Helio.xcodeproj -configuration Release -scheme 'Helio - App' -archivePath /tmp/archive archive;
fi
- if [[ "${BUILD_TYPE}" == "docs" ]]; then
mdbook build Docs && mdbook test Docs;
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 ~/.ssh/deploy_rsa -d
- eval "$(ssh-agent -s)"
- chmod 600 ~/.ssh/deploy_rsa
- ssh-add ~/.ssh/deploy_rsa
deploy:
provider: script
dpl_version: 1.10.16
skip_cleanup: true
script: bash ${TRAVIS_BUILD_DIR}/Projects/Deployment/Travis/deploy-${BUILD_TYPE}.sh
on:
all_branches: true
repo: helio-fm/helio-sequencer
condition: ${TRAVIS_BUILD_STAGE_NAME} = "Deploy"