-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
93 lines (85 loc) · 3.58 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
# Copyright (c) 2020 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the License); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
language: sh
os: linux
dist: xenial
env:
global:
- PROFILE=develop
cache:
pip: true
ccache: true
# It looks like ccache for arm-none-eabi is not yet supported by Travis.
# Therefore manually adding ccache directory to cache
directories:
- ${HOME}/.ccache
addons:
apt:
sources:
- sourceline: 'deb https://apt.kitware.com/ubuntu/ xenial main'
key_url: 'https://apt.kitware.com/keys/kitware-archive-latest.asc'
- sourceline: 'deb https://apt.kitware.com/ubuntu/ xenial-rc main'
packages:
- cmake
- ninja-build
matrix:
include:
- &cmake-build-test
stage: "CMake"
name: "CMake lorawan example - develop (K64F)"
env: NAME=cmake_test TARGET_NAME=K64F PROFILE=develop CACHE_NAME=develop-K64F
language: python
python: 3.8
install:
# Setup ccache
- ccache -o compiler_check=content
- ccache -M 1G
- pushd /usr/lib/ccache
- sudo ln -s ../../bin/ccache arm-none-eabi-gcc
- sudo ln -s ../../bin/ccache arm-none-eabi-g++
- export PATH="/usr/lib/ccache:$PATH"
- popd
# Install arm-none-eabi-gcc
- pushd /home/travis/build && mkdir arm-gcc && cd arm-gcc
- curl -L0 "https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A" --output gcc-arm-none-eabi-9-2020-q2-update.tar.bz2
- tar xf gcc-arm-none-eabi-9-2020-q2-update.tar.bz2
- export PATH="$PATH:${PWD}/gcc-arm-none-eabi-9-2020-q2-update/bin"
- popd
- arm-none-eabi-gcc --version
# Hide Travis-preinstalled CMake
# The Travis-preinstalled CMake is unfortunately not installed via apt, so we
# can't replace it with an apt-supplied version very easily. Additionally, we
# can't permit the Travis-preinstalled copy to survive, as the Travis default
# path lists the Travis CMake install location ahead of any place where apt
# would install CMake to. Instead of apt removing or upgrading to a new CMake
# version, we must instead delete the Travis copy of CMake.
- sudo rm -rf /usr/local/cmake*
- pip install --upgrade mbed-tools
- pip install prettytable==0.7.2
- pip install future==0.16.0
- pip install "Jinja2>=2.10.1,<2.11"
- pip install "intelhex>=1.3,<=2.2.1"
script:
- mbed-tools deploy
- echo mbed-tools compile -t GCC_ARM -m ${TARGET_NAME} -b ${PROFILE}
- mbed-tools compile -t GCC_ARM -m ${TARGET_NAME} -b ${PROFILE}
- ccache -s
- <<: *cmake-build-test
name: "CMake lorawan example - release (K64F)"
env: NAME=cmake_test TARGET_NAME=K64F PROFILE=release CACHE_NAME=release-K64F
- <<: *cmake-build-test
name: "CMake lorawan example - debug (K64F)"
env: NAME=cmake_test TARGET_NAME=K64F PROFILE=debug CACHE_NAME=debug-K64F