Merge pull request #5729 from 0xc0170/fix_travis_time

Travis: define matrix builds for mbed 2 jobs
pull/5720/head
Martin Kojtal 2017-12-20 13:02:21 +00:00 committed by GitHub
commit a7aaee3c9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 363 additions and 291 deletions

View File

@ -1,3 +1,6 @@
language: python
python:
'2.7'
env:
global:
@ -15,6 +18,7 @@ cache:
pip: true
directories:
- $HOME/.cache/apt
- $HOME/gcc-arm-none-eabi-6-2017-q2-update
before_install:
- bash -c "$STATUS" pending "Local $NAME testing is in progress"
@ -36,8 +40,7 @@ after_failure:
matrix:
include:
- python: '2.7'
env:
- env:
- NAME=docs
install:
# Install dependencies
@ -68,19 +71,13 @@ matrix:
find -name "*.s" | tee BUILD/badasm |
sed -e "s/^/Bad Assembler file name found: /" && [ ! -s BUILD/badasm ]
- python: '2.7'
env:
- env:
- NAME=tools
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
- pip install --user pytest
- pip install --user pylint
- pip install --user hypothesis
- pip install --user mock
- pip install --user coverage
- pip install --user coveralls
- pip install -r requirements.txt
- pip install pytest pylint hypothesis mock coverage coveralls
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
@ -96,14 +93,13 @@ matrix:
# Report success since we have overridden default behaviour
- bash -c "$STATUS" success "Local $NAME testing has passed"
- python: '2.7'
env:
- env:
- NAME=events
- EVENTS=events
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
- pip install -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- gcc --version
@ -115,14 +111,13 @@ matrix:
# Run local equeue tests
- make -C $EVENTS/equeue test
- python: '2.7'
env:
- env:
- NAME=littlefs
- LITTLEFS=features/filesystem/littlefs
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded fuse libfuse-dev
- pip install --user -r requirements.txt
- pip install -r requirements.txt
- git clone https://github.com/armmbed/spiflash-driver.git
# Print versions
- arm-none-eabi-gcc --version
@ -162,13 +157,16 @@ matrix:
- ls MOUNT/littlefs
- CFLAGS="-Wno-format" make -CMOUNT/littlefs -B test_dirs QUIET=1
- python: '2.7'
env:
- NAME=mbed2
- &mbed-2
env: NAME=mbed2-NXP
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
- export GCC_DIR=$HOME/gcc-arm-none-eabi-6-2017-q2-update
- export GCC_ARCHIVE=$HOME/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2
- export GCC_URL=https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2?revision=2cc92fb5-3e0e-402d-9197-bdfc8224d8a5?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,6-2017-q2-update
- if [ ! -e $GCC_DIR/bin/arm-none-eabi-gcc ]; then wget $GCC_URL -O $GCC_ARCHIVE; tar xfj $GCC_ARCHIVE -C $HOME; fi
- export PATH=$PATH:$GCC_DIR/bin
- pip install -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
@ -177,6 +175,16 @@ matrix:
- mkdir BUILD
script:
# Run local mbed 2 testing
# Note: These take ~40 minutes to run
- python2 -u tools/build_travis.py | sed -n '/^Executing/p'
- python2 -u tools/build_travis.py --vendor "${NAME#mbed2-}"
- <<: *mbed-2
env: NAME=mbed2-STM
- <<: *mbed-2
env: NAME=mbed2-NORDIC
- <<: *mbed-2
env: NAME=mbed2-SILICON_LABS
- <<: *mbed-2
env: NAME=mbed2-MAXIM
- <<: *mbed-2
env: NAME=mbed2-ATMEL
- <<: *mbed-2
env: NAME=mbed2-NUVOTON

View File

@ -22,17 +22,16 @@ limitations under the License.
import os
import sys
from argparse import ArgumentParser
################################################################################
# Configure builds here
# "libs" can contain "dsp", "usb"
build_list = (
{ "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] },
{ "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] },
build_list = [
{
"STM":
(
{ "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NUCLEO_L152RE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
@ -88,14 +87,24 @@ build_list = (
{ "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
),
},
{
"NXP":
(
{ "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] },
{ "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] },
{ "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
@ -107,37 +116,67 @@ build_list = (
{ "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"NORDIC":
(
{ "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"SILICON_LABS":
(
{ "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"MAXIM":
(
{ "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"ATMEL":
(
{ "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"NUVOTON":
(
{ "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
)
}
]
################################################################################
# Configure example test building (linking against external mbed SDK libraries)
linking_list = [
{
"NXP": (
{"target": "LPC1768",
"toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
@ -162,6 +201,11 @@ linking_list = [
"usb" : ["USB_1", "USB_2" ,"USB_3"],
}
},
)
},
{
"STM": (
{"target": "NUCLEO_F446RE",
"toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
@ -259,6 +303,10 @@ linking_list = [
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
}
},
)
},
{
"NUVOTON": (
{"target": "NUMAKER_PFM_NUC472",
"toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
@ -277,18 +325,22 @@ linking_list = [
"usb" : ["USB_1", "USB_2" ,"USB_3"],
}
}
)
}
]
################################################################################
# Driver
def run_builds(dry_run):
for build in build_list:
def run_builds(dry_run, vendor):
for vendor_list in build_list:
if vendor in vendor_list:
for build in vendor_list[vendor]:
toolchain_list = build["toolchains"]
if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
for toolchain in toolchain_list:
cmdline = "python tools/build.py -m %s -t %s -j 4 -c --silent "% (build["target"], toolchain)
cmdline = "python tools/build.py -m %s -t %s -c --silent "% (build["target"], toolchain)
libs = build.get("libs", [])
if libs:
cmdline = cmdline + " ".join(["--" + l for l in libs])
@ -298,11 +350,13 @@ def run_builds(dry_run):
sys.exit(1)
def run_test_linking(dry_run):
def run_test_linking(dry_run, vendor):
""" Function run make.py commands to build and link simple mbed SDK
tests against few libraries to make sure there are no simple linking errors.
"""
for link in linking_list:
for vendor_list in linking_list:
if vendor in vendor_list:
for link in vendor_list[vendor]:
toolchain_list = link["toolchains"]
if type(toolchain_list) != type([]):
toolchain_list = [toolchain_list]
@ -318,7 +372,7 @@ def run_test_linking(dry_run):
if os.system(cmdline) != 0:
sys.exit(1)
def run_test_testsuite(dry_run):
def run_test_testsuite(dry_run, vendor):
cmdline = "python tools/singletest.py --version"
print "Executing: " + cmdline
if not dry_run:
@ -326,6 +380,16 @@ def run_test_testsuite(dry_run):
sys.exit(1)
if __name__ == "__main__":
run_builds("-s" in sys.argv)
run_test_linking("-s" in sys.argv)
run_test_testsuite("-s" in sys.argv)
parser = ArgumentParser()
parser.add_argument("--vendor",
metavar="vendor",
type=str.upper,
help="Select a vendor to run travis tests"
)
options = parser.parse_args()
run_builds("-s" in sys.argv, options.vendor)
run_test_linking("-s" in sys.argv, options.vendor)
run_test_testsuite("-s" in sys.argv, options.vendor)