aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 0405ba560ff5dc57ad0019ba917630b6a919c5ef (plain) (blame)
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
# Build and autotest script for PX4 Firmware
# http://travis-ci.org

language: cpp

# use travis-ci docker based infrastructure
sudo: false

cache:
  directories:
    - $HOME/.ccache

addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - build-essential
    - ccache
    - cmake
    - g++-4.8
    - gcc-4.8
    - genromfs
    - libc6-i386
    - libncurses5-dev
    - python-argparse
    - python-empy
    - python-serial
    - s3cmd
    - texinfo
    - zlib1g-dev

before_script:
  - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
# General toolchain dependencies
  - pushd .
  - cd ~
  - wget https://launchpadlibrarian.net/186124160/gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
  - tar -jxf gcc-arm-none-eabi-4_8-2014q3-20140805-linux.tar.bz2
  - exportline="export PATH=$HOME/gcc-arm-none-eabi-4_8-2014q3/bin:\$PATH"
  - if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
  - . ~/.profile
  - popd
# setup ccache
  - mkdir -p ~/bin
  - ln -s /usr/bin/ccache ~/bin/arm-none-eabi-g++
  - ln -s /usr/bin/ccache ~/bin/arm-none-eabi-gcc
  - ln -s /usr/bin/ccache ~/bin/g++-4.8
  - ln -s /usr/bin/ccache ~/bin/gcc-4.8
  - export PATH=~/bin:$PATH

env:
  global:
# AWS KEY: $PX4_AWS_KEY
    - secure: "XknnZHWBbpHbN4f3fuAVwUztdLIu8ej4keC3aQSDofo3uw8AFEzojfsQsN9u77ShWSIV4iYJWh9C9ALkCx7TocJ+xYjiboo10YhM9lH/8u+EXjYWG6GHS8ua0wkir+cViSxoLNaMtmcb/rPTicJecAGANxLsIHyBAgTL3fkbLSA="
# AWS SECRET: $PX4_AWS_SECRET
    - secure: "h6oajlW68dWIr+wZhO58Dv6e68dZHrBLVA6lPXZmheFQBW6Xam1HuLGA0LOW6cL9TnrAsOZ8g4goB58eMQnMEijFZKi3mhRwZhd/Xjq/ZGJOWBUrLoQHZUw2dQk5ja5vmUlKEoQnFZjDuMjx8KfX5ZMNy8A3yssWZtJYHD8c+bk="
    - PX4_AWS_BUCKET=px4-travis

script:
  - ccache -z
  - arm-none-eabi-gcc --version
  - echo 'Running Tests..' && echo -en 'travis_fold:start:script.1\\r'
  - make tests
  - cat src/modules/systemlib/mixer/mixer_multirotor.generated.h
  - echo -en 'travis_fold:end:script.1\\r'
  - echo 'Building NuttX..' && echo -en 'travis_fold:start:script.2\\r'
  - make archives
  - ccache -s
  - echo -en 'travis_fold:end:script.2\\r'
  - echo 'Building Firmware..' && echo -en 'travis_fold:start:script.3\\r'
  - make -j4
  - ccache -s
  - echo -en 'travis_fold:end:script.3\\r'
  - zip Firmware.zip Images/*.px4

after_script:
  - git clone git://github.com/PX4/CI-Tools.git
  - ./CI-Tools/s3cmd-configure
# upload newest build for this branch with s3 index
  - ./CI-Tools/s3cmd-put Images/px4*.px4 CI-Tools/directory/index.html Firmware/$TRAVIS_BRANCH/
# archive newest build by date with s3 index
  - ./CI-Tools/s3cmd-put Firmware.zip archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID/
  - ./CI-Tools/s3cmd-put CI-Tools/directory/index.html archives/Firmware/$TRAVIS_BRANCH/
# upload top level index.html and timestamp.html
  - ./CI-Tools/s3cmd-put CI-Tools/index.html index.html
  - ./CI-Tools/s3cmd-put CI-Tools/timestamp.html timestamp.html
  - echo ""
  - echo "Binaries have been posted to:"
  - echo https://px4-travis.s3.amazonaws.com/archives/Firmware/$TRAVIS_BRANCH/$TRAVIS_BUILD_ID/Firmware.zip

deploy:
  provider: releases
  api_key:
    secure: cdHWLRBxA5UlYpOS0Sp891QK7PFmMgQ5ZWs1aPt+sw0rIrowyWMHCwXNBEdUqaExHYNYgXCUDI0EzNgfB7ZcR63Qv1MQeoyamV4jsxlyAqDqmxNtWO82S6RhHGeMLk26VgFKzynVcEk1IYlQP2nqzMQLdu+jTrngERuAIrCdRuc=
  file: "Firmware.zip"
  skip_cleanup: true
  on:
    tags: true
    all_branches: true
    repo: PX4/Firmware

notifications:
  webhooks:
    urls:
      - https://webhooks.gitter.im/e/2b9c4a4cb2211f8befba
    on_success: always  # options: [always|never|change] default: always
    on_failure: always  # options: [always|never|change] default: always