forked from mpromonet/webrtc-streamer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
79 lines (79 loc) · 3.76 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
dist: xenial
env:
global:
- GNARGSCOMMON='rtc_include_tests=false rtc_enable_protobuf=false use_custom_libcxx=false use_ozone=true rtc_include_pulse_audio=false rtc_build_examples=false'
matrix:
- |
GYP_GENERATOR_OUTPUT=x86_64
GNARGS='is_debug=false rtc_use_h264=true ffmpeg_branding="Chrome"'
SYSROOT=${TRAVIS_BUILD_DIR}/webrtc/src/build/linux/debian_sid_amd64-sysroot
- |
GYP_GENERATOR_OUTPUT=x86_64-debug
GNARGS='is_debug=true rtc_use_h264=true ffmpeg_branding="Chrome"'
SYSROOT=${TRAVIS_BUILD_DIR}/webrtc/src/build/linux/debian_sid_amd64-sysroot
- |
GYP_GENERATOR_OUTPUT=rpi-armv7
GNARGS='is_debug=false rtc_use_h264=true ffmpeg_branding="Chrome" is_clang=false target_cpu="arm" treat_warnings_as_errors=false'
CROSS=arm-linux-gnueabihf-
SYSROOT=${TRAVIS_BUILD_DIR}/webrtc/src/build/linux/debian_sid_arm-sysroot
- |
GYP_GENERATOR_OUTPUT=rpi-armv6
GNARGS='is_debug=false is_clang=false target_cpu="arm" treat_warnings_as_errors=false arm_version=6 arm_arch="armv6" arm_float_abi="hard" arm_use_neon=false arm_optionally_use_neon=false rtc_build_with_neon=false arm_use_thumb=false rtc_include_opus=false use_sysroot=false'
CROSS=arm-linux-gnueabihf-
CFLAGS_EXTRA="-march=armv6 -mfpu=vfp -mfloat-abi=hard"
addons:
apt:
packages:
- git
language: cpp
compiler:
- gcc
script:
# get toolchain
- git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git && export PATH=$PATH:$(pwd)/depot_tools
- if [ "$CROSS" == "arm-linux-gnueabihf-" ]; then git clone --depth 1 https://github.com/raspberrypi/tools.git rpi_tools && export PATH=$PATH:$(pwd)/rpi_tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin; fi
# get WebRTC
- mkdir webrtc
- pushd webrtc
- travis_wait 30 fetch --no-history --nohooks webrtc
# patch webrtc to not download chromium-webrtc-resources
- sed -i -e "s|'src/resources'],|'src/resources'],'condition':'rtc_include_tests==true',|" src/DEPS
# patch webrtc for std::vector::erase with iterator
- if [ "$CROSS" == "arm-linux-gnueabihf-" ]; then sed -i -e "s|const auto iter = FindSourceInList(audio_source, &audio_source_list_);|const auto iter = std::find_if(audio_source_list_.begin(), audio_source_list_.end(), [audio_source](const std::unique_ptr<AudioMixerImpl::SourceStatus> \&p) { return p->audio_source == audio_source; });|" src/modules/audio_mixer/audio_mixer_impl.cc; fi
- if [ "$CROSS" == "arm-linux-gnueabihf-" ] && [ "$SYSROOT" != "" ] ; then src/build/linux/sysroot_scripts/install-sysroot.py --arch=arm; fi
# get WebRTC dependencies
- travis_wait 30 gclient sync
- popd
# get, build and install live555 & alsa
- make WEBRTCROOT=./webrtc live555 alsa-lib
- pushd webrtc
- pushd src
# build WebRTC
- gn gen ${GYP_GENERATOR_OUTPUT}/out/Release --args="${GNARGSCOMMON} ${GNARGS}"
- ninja -C ${GYP_GENERATOR_OUTPUT}/out/Release jsoncpp rtc_json webrtc builtin_audio_decoder_factory
- popd
- popd
# build
- make WEBRTCROOT=./webrtc all tgz
# clean up
- rm -rf webrtc rpi_tools depot_tools
before_deploy:
- export RELEASE_PKG_FILE=$(ls *.tgz)
- echo "RELEASE_PKG_FILE=${RELEASE_PKG_FILE}"
deploy:
- provider: heroku
skip_cleanup: true
api_key:
secure: NmTNf38MkoWWQZrRkXyWqCdRRO4Xjv+Kl0TOZPw+qCXva4kc2T0uwSi2o4YNZBUA533NyZvO6IJMQOpx24UkjPhxVv591FBB+HdUevOxD4SEAE8fBibpHVX3sTU0XLp/mx+BpNFdxKrEHHzoyBZBFjesQVVMVczB4AOv/KZerGw=
on:
repo: mpromonet/webrtc-streamer
condition: $GYP_GENERATOR_OUTPUT = x86_64
- provider: releases
skip_cleanup: true
api_key:
secure: FMXzmhBmuy7Jou3h5lG10b8xl5oqI96aYoUrUHO2rfKqQ4UMKxT3hXcdxOnSsnbI6d8NfXbOPKqmqmD4vTk+EqQjCK9fmsNxAg1UktLIsuOxoWmEWYLK5d3xpIuRmfRQDtPVjcryrE420FCfZS67lyr22+v1pLcvcD61ebGZLCg=
file:
- "${RELEASE_PKG_FILE}"
on:
repo: mpromonet/webrtc-streamer
tags: true