Skip to content
This repository was archived by the owner on Dec 20, 2023. It is now read-only.

Commit 67d3f84

Browse files
committed
Re-enable nRF52840 lock example targets in travis
-- Download sdk and tools for the nrf52840 lock example target in the before_install script rather than in the prepare script. This makes sure that dependancy installation happens only once as we add more applications in the future for the nrf52840 platform that use the same dependencies. -- Enable building nRF52840 Lock Example on Linux and OSX
1 parent 942bc9e commit 67d3f84

File tree

5 files changed

+74
-54
lines changed

5 files changed

+74
-54
lines changed

.travis.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#
1818
# Description:
19-
# This file is the Travis CI hosted, distributed continuous
19+
# This file is the Travis CI hosted, distributed continuous
2020
# integration configuration file for the OpenWeave Core library.
2121
#
2222

@@ -64,6 +64,12 @@ matrix:
6464
compiler: clang
6565
- name: "ESP32 (openweave-esp32-demo)"
6666
env: BUILD_TARGET="esp32"
67+
- name: "nRF52840 Lock Example (Linux)"
68+
env: BUILD_TARGET="nrf52840-lock-example"
69+
os: linux
70+
- name: "nRF52840 Lock Example (OS X)"
71+
env: BUILD_TARGET="nrf52840-lock-example"
72+
os: osx
6773
- name: "Linux with Defaults against GCC Functional and Unit Tests"
6874
env: BUILD_TARGET="linux-auto-gcc-check" CC="gcc"
6975
os: linux
@@ -104,4 +110,4 @@ deploy:
104110
tags: true
105111
env:
106112
global:
107-
secure: PJdNS8L51Y+Op8xc2C9U13Y6eQUAszDEKigB0jn9LsXB8BZwJsu3mjmtLTQBU99nqAhsCKiN85kxry6APi/xjcDJ3/iRP8IpP8KJ/VV68CChdu1X/2iatSS/EOAT4ZBoo3sUCmP98w4k5G6HiVCpnNprhZOg8xsD9bflVkX9Au67hcwfHfKWyX1c/kbYYyegSWd+7GgkNZRGAws1yuwL1MwGppDqKQJ1bOciALaA1LMzzl1wvrle6t+CWvLH51YoIgndFsTJaphGqXp/hveCIsXEGKY5ZN8RkfuSvs9JupsfoXjA9Nxg2WfLC5c4MeyJV9yvzF9zZNglra9+PTlHFMxnuSvyIKRiHb9rwXMwgtb8Tqwhe0Cikj77gHdRUfZjUNBS34nNRqACSFjSFDM9N862z17BqfMZu0A0znquM24vfm+JV1i7OZ8USdbbmBqtL5qJgimQv2/Y/j3H/o6IrqOLEhuzOXQynclf6xi6AdXlcJ1QmTTicU5JbETJuzkvOYsnUs7TBV0FaPf+j98LEHTXZUPlDtQz4sIu757SiYUuR6Jm357yOwyv+x/PMk250g2op0TtMksjR3HQahnz8HJPYLenOxogYqarqY6E4TNm2P+bRDCPgxQ+dTSvlrcH8qhl+PHImn38q38ghm98WUvqdwxAApI3cZdy4Ja/3WA=
113+
secure: PJdNS8L51Y+Op8xc2C9U13Y6eQUAszDEKigB0jn9LsXB8BZwJsu3mjmtLTQBU99nqAhsCKiN85kxry6APi/xjcDJ3/iRP8IpP8KJ/VV68CChdu1X/2iatSS/EOAT4ZBoo3sUCmP98w4k5G6HiVCpnNprhZOg8xsD9bflVkX9Au67hcwfHfKWyX1c/kbYYyegSWd+7GgkNZRGAws1yuwL1MwGppDqKQJ1bOciALaA1LMzzl1wvrle6t+CWvLH51YoIgndFsTJaphGqXp/hveCIsXEGKY5ZN8RkfuSvs9JupsfoXjA9Nxg2WfLC5c4MeyJV9yvzF9zZNglra9+PTlHFMxnuSvyIKRiHb9rwXMwgtb8Tqwhe0Cikj77gHdRUfZjUNBS34nNRqACSFjSFDM9N862z17BqfMZu0A0znquM24vfm+JV1i7OZ8USdbbmBqtL5qJgimQv2/Y/j3H/o6IrqOLEhuzOXQynclf6xi6AdXlcJ1QmTTicU5JbETJuzkvOYsnUs7TBV0FaPf+j98LEHTXZUPlDtQz4sIu757SiYUuR6Jm357yOwyv+x/PMk250g2op0TtMksjR3HQahnz8HJPYLenOxogYqarqY6E4TNm2P+bRDCPgxQ+dTSvlrcH8qhl+PHImn38q38ghm98WUvqdwxAApI3cZdy4Ja/3WA=

.travis/before_install.sh

Lines changed: 62 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,49 @@
1818

1919
#
2020
# Description:
21-
# This file is the script for Travis CI hosted, distributed continuous
21+
# This file is the script for Travis CI hosted, distributed continuous
2222
# integration 'before_install' trigger of the 'install' step.
2323
#
2424

25-
NORDIC_SDK_FOR_THREAD_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/SDKs/nRF5-SDK-for-Thread/nRF5-SDK-for-Thread-and-Zigbee/nRF5SDKforThreadandZigbee20029775ac.zip
25+
TMPDIR=${TMPDIR-/tmp}
2626

27-
NORDIC_COMMAND_LINE_TOOLS_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF5-command-line-tools/sw/nRF-Command-Line-Tools_9_8_1_Linux-x86_64.tar
27+
HASH_CMD="shasum -a 256"
28+
CACHEDIR=${TRAVIS_BUILD_DIR}/cache
2829

29-
ARM_GCC_TOOLCHAIN_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
30+
FetchURL() {
31+
local URL="$1"
32+
local LOCAL_FILE_NAME=$2
33+
local HASH=$3
3034

31-
TMPDIR=${TMPDIR-/tmp}
35+
# NOTE: 2 spaces required between hash value and file name.
36+
if ! (echo "${HASH} ${LOCAL_FILE_NAME}" | ${HASH_CMD} -c --status >/dev/null 2>&1); then
37+
rm -f ${LOCAL_FILE_NAME}
38+
wget -O ${LOCAL_FILE_NAME} -nv "${URL}" || exit 1
39+
fi
40+
}
41+
42+
# Tool download links
43+
#
44+
export NORDIC_SDK_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/SDKs/nRF5-SDK-for-Thread/nRF5-SDK-for-Thread-and-Zigbee/nRF5SDKforThreadandZigbeev300d310e71.zip
45+
NORDIC_SDK_HASH=39842f47cbd1b9ba18a892de2732d5eb0610d7ec38f10ec48aeb326e92e06444
46+
47+
if test "${TRAVIS_OS_NAME}" = "linux"; then
48+
49+
export NORDIC_COMMAND_LINE_TOOLS_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-9-x-x/nRF-Command-Line-Tools_9_8_1_Linux-x86_64.tar
50+
NORDIC_COMMAND_LINE_TOOLS_HASH=ed3eb5325f9e1dcbfc2046f3b347b7b76a802ddb31a8b113965b4097a893f6d1
51+
52+
export ARM_GCC_TOOLCHAIN_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
53+
ARM_GCC_TOOLCHAIN_HASH=bb17109f0ee697254a5d4ae6e5e01440e3ea8f0277f2e8169bf95d07c7d5fe69
54+
55+
elif test "${TRAVIS_OS_NAME}" = "osx"; then
56+
57+
export NORDIC_COMMAND_LINE_TOOLS_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF-command-line-tools/sw/Versions-9-x-x/nRF-Command-Line-Tools_9_8_1_OSX.tar
58+
NORDIC_COMMAND_LINE_TOOLS_HASH=b4b77e4368267ba948f5bedbdc1be7699322e453c4e9f097f48763b78e192ff2
59+
60+
export ARM_GCC_TOOLCHAIN_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-mac.tar.bz2
61+
ARM_GCC_TOOLCHAIN_HASH=c1c4af5226d52bd1b688cf1bd78f60eeea53b19fb337ef1df4380d752ba88759
62+
63+
fi
3264

3365
die()
3466
{
@@ -76,38 +108,45 @@ installdeps()
76108

77109
nrf5-sdk)
78110
# Install Nordic nRF52840 SDK for Thread and Zigbee
79-
wget -O ${TMPDIR}/nordic_sdk_for_thread.zip -nv ${NORDIC_SDK_FOR_THREAD_URL} || exit 1
80-
unzip -d ${TRAVIS_BUILD_DIR}/nRF5x-SDK-for-Thread-and-Zigbee -q ${TMPDIR}/nordic_sdk_for_thread.zip || exit 1
81-
rm ${TMPDIR}/nordic_sdk_for_thread.zip
82-
111+
#
112+
mkdir -p ${CACHEDIR}
113+
NORDIC_SDK_FILE_NAME=${CACHEDIR}/`basename ${NORDIC_SDK_URL}`
114+
FetchURL "${NORDIC_SDK_URL}" ${NORDIC_SDK_FILE_NAME} ${NORDIC_SDK_HASH}
115+
unzip -d ${TRAVIS_BUILD_DIR}/nRF5x-SDK-for-Thread-and-Zigbee -q ${NORDIC_SDK_FILE_NAME} || exit 1
116+
83117
;;
84-
118+
85119
nrf5-tools)
86120
# Install Nordic nRF5x Command Line Tools
87-
wget -O ${TMPDIR}/nordic_command_line_tools.tar -nv ${NORDIC_COMMAND_LINE_TOOLS_URL} || exit 1
121+
#
122+
mkdir -p ${CACHEDIR}
123+
NORDIC_COMMAND_LINE_TOOLS_FILE_NAME=${CACHEDIR}/`basename ${NORDIC_COMMAND_LINE_TOOLS_URL}`
124+
FetchURL "${NORDIC_COMMAND_LINE_TOOLS_URL}" ${NORDIC_COMMAND_LINE_TOOLS_FILE_NAME} ${NORDIC_COMMAND_LINE_TOOLS_HASH}
88125
mkdir ${TRAVIS_BUILD_DIR}/nRF5x-Command-Line-Tools
89-
tar -C ${TRAVIS_BUILD_DIR}/nRF5x-Command-Line-Tools -xf ${TMPDIR}/nordic_command_line_tools.tar || exit 1
90-
rm ${TMPDIR}/nordic_command_line_tools.tar
126+
tar -C ${TRAVIS_BUILD_DIR}/nRF5x-Command-Line-Tools -xf ${NORDIC_COMMAND_LINE_TOOLS_FILE_NAME} || exit 1
91127

92128
;;
93129

94130
arm-gcc)
95131
# Install ARM GCC Toolchain
96-
wget -O ${TMPDIR}/arm_gcc_toolchain.tar.bz2 -nv ${ARM_GCC_TOOLCHAIN_URL} || exit 1
132+
#
133+
mkdir -p ${CACHEDIR}
134+
ARM_GCC_TOOLCHAIN_FILE_NAME=${CACHEDIR}/`basename ${ARM_GCC_TOOLCHAIN_URL}`
135+
FetchURL "${ARM_GCC_TOOLCHAIN_URL}" ${ARM_GCC_TOOLCHAIN_FILE_NAME} ${ARM_GCC_TOOLCHAIN_HASH}
97136
mkdir ${TRAVIS_BUILD_DIR}/arm
98-
tar -jxf ${TMPDIR}/arm_gcc_toolchain.tar.bz2 --directory ${TRAVIS_BUILD_DIR}/arm || exit 1
99-
rm ${TMPDIR}/arm_gcc_toolchain.tar.bz2
137+
tar -jxf ${ARM_GCC_TOOLCHAIN_FILE_NAME} --directory ${TRAVIS_BUILD_DIR}/arm || exit 1
100138

101139
;;
102140

141+
103142
osx-autotools)
104143
HOMEBREW_NO_AUTO_UPDATE=1 brew install automake libtool
105144
;;
106-
145+
107146
osx-openssl)
108147
HOMEBREW_NO_AUTO_UPDATE=1 brew install openssl
109148
;;
110-
149+
111150
esac
112151
}
113152

@@ -135,8 +174,11 @@ case "${BUILD_TARGET}" in
135174

136175
;;
137176

138-
nrf52840)
139-
.travis/prepare_nrf52840.sh
177+
nrf52840-lock-example)
178+
installdeps "nrf5-sdk"
179+
installdeps "nrf5-tools"
180+
installdeps "arm-gcc"
181+
.travis/prepare_nrf52840_lock_example.sh
140182

141183
;;
142184

File renamed without changes.

.travis/prepare_nrf52840.sh renamed to .travis/prepare_nrf52840_lock_example.sh

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -23,36 +23,8 @@
2323

2424
TMPDIR=${TMPDIR-/tmp}
2525

26-
# Set tools download links
27-
#
28-
NORDIC_SDK_FOR_THREAD_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/SDKs/nRF5-SDK-for-Thread/nRF5-SDK-for-Thread-and-Zigbee/nRF5SDKforThreadandZigbeev300d310e71.zip
29-
NORDIC_COMMAND_LINE_TOOLS_URL=https://www.nordicsemi.com/-/media/Software-and-other-downloads/Desktop-software/nRF5-command-line-tools/sw/nRF-Command-Line-Tools_9_8_1_Linux-x86_64.tar
30-
ARM_GCC_TOOLCHAIN_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
31-
32-
# --------------------------------------------------------------------------------
33-
3426
set -x
3527

36-
# Install Nordic nRF52840 SDK for Thread and Zigbee
37-
#
38-
wget -O ${TMPDIR}/nordic_sdk_for_thread.zip -nv ${NORDIC_SDK_FOR_THREAD_URL} || exit 1
39-
unzip -d ${TRAVIS_BUILD_DIR}/nRF5x-SDK-for-Thread-and-Zigbee -q ${TMPDIR}/nordic_sdk_for_thread.zip || exit 1
40-
rm ${TMPDIR}/nordic_sdk_for_thread.zip
41-
42-
# Install Nordic nRF5x Command Line Tools
43-
#
44-
wget -O ${TMPDIR}/nordic_command_line_tools.tar -nv ${NORDIC_COMMAND_LINE_TOOLS_URL} || exit 1
45-
mkdir ${TRAVIS_BUILD_DIR}/nRF5x-Command-Line-Tools
46-
tar -C ${TRAVIS_BUILD_DIR}/nRF5x-Command-Line-Tools -xf ${TMPDIR}/nordic_command_line_tools.tar || exit 1
47-
rm ${TMPDIR}/nordic_command_line_tools.tar
48-
49-
# Install ARM GCC Toolchain
50-
#
51-
wget -O ${TMPDIR}/arm_gcc_toolchain.tar.bz2 -nv ${ARM_GCC_TOOLCHAIN_URL} || exit 1
52-
mkdir ${TRAVIS_BUILD_DIR}/arm
53-
tar -jxf ${TMPDIR}/arm_gcc_toolchain.tar.bz2 --directory ${TRAVIS_BUILD_DIR}/arm || exit 1
54-
rm ${TMPDIR}/arm_gcc_toolchain.tar.bz2
55-
5628
# Clone the openweave-nrf52840-lock-example application. This code will be used to
5729
# test the ability to build OpenWeave for the nRF52840.
5830
#

.travis/script.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
#
2020
# Description:
21-
# This file is the script for Travis CI hosted, distributed continuous
21+
# This file is the script for Travis CI hosted, distributed continuous
2222
# integration 'script' step.
2323
#
2424

@@ -97,8 +97,8 @@ case "${BUILD_TARGET}" in
9797
.travis/build_esp32.sh
9898
;;
9999

100-
nrf52840)
101-
.travis/build_nrf52840.sh
100+
nrf52840-lock-example)
101+
.travis/build_nrf52840_lock_example.sh
102102
;;
103103

104104
linux-auto-*-distcheck)
@@ -112,6 +112,6 @@ case "${BUILD_TARGET}" in
112112
*)
113113
die "Unknown build target \"${BUILD_TARGET}\"."
114114
;;
115-
115+
116116
esac
117117

0 commit comments

Comments
 (0)