Travis: define vendor matrix

Use vendor matrix, creates a job for each vendor folder (targets/TARGET_XXX).
This fixes the errors we have seen, as a job has a limit 50 minutes.
pull/5729/head
Martin Kojtal 2017-12-19 08:28:52 +00:00
parent b4dc32521a
commit 1b3cff54fb
2 changed files with 433 additions and 269 deletions

View File

@ -164,7 +164,7 @@ matrix:
- python: '2.7' - python: '2.7'
env: env:
- NAME=mbed2 - NAME=mbed2-NXP
install: install:
# Install dependencies # Install dependencies
- sudo apt-get install gcc-arm-embedded - sudo apt-get install gcc-arm-embedded
@ -177,6 +177,106 @@ matrix:
- mkdir BUILD - mkdir BUILD
script: script:
# Run local mbed 2 testing # Run local mbed 2 testing
# Note: These take ~40 minutes to run - python2 -u tools/build_travis.py --vendor NXP | sed -n '/^Executing/p'
- python2 -u tools/build_travis.py | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-STM
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor STM | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-NORDIC
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor NORDIC | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-SILICON_LABS
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor SILICON_LABS | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-MAXIM
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor MAXIM | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-ATMEL
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor ATMEL | sed -n '/^Executing/p'
- python: '2.7'
env:
- NAME=mbed2-NUVOTON
install:
# Install dependencies
- sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt
# Print versions we use
- arm-none-eabi-gcc --version
- python --version
before_script:
# Create BUILD directory for tests
- mkdir BUILD
script:
# Run local mbed 2 testing
- python2 -u tools/build_travis.py --vendor NUVOTON | sed -n '/^Executing/p'

View File

@ -22,17 +22,16 @@ limitations under the License.
import os import os
import sys import sys
from argparse import ArgumentParser
################################################################################ ################################################################################
# Configure builds here # Configure builds here
# "libs" can contain "dsp", "usb" # "libs" can contain "dsp", "usb"
build_list = ( build_list = [
{ "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, {
{ "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] }, "STM":
{ "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] }, (
{ "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] },
{ "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NUCLEO_L152RE", "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_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "DISCO_L476VG", "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"] }, { "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": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC11U37H_401", "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": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, { "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "KL27Z", "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": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, { "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] }, )
},
{
"NORDIC":
(
{ "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"SILICON_LABS":
(
{ "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, { "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32LG_STK3600", "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": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, { "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"MAXIM":
(
{ "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] },
)
},
{
"ATMEL":
(
{ "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, { "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
{ "target": "SAML21J18A", "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_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
{ "target": "NUMAKER_PFM_M453", "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"] }, { "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
) )
}
]
################################################################################ ################################################################################
# Configure example test building (linking against external mbed SDK libraries) # Configure example test building (linking against external mbed SDK libraries)
linking_list = [ linking_list = [
{
"NXP": (
{"target": "LPC1768", {"target": "LPC1768",
"toolchains": "GCC_ARM", "toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"], "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"], "usb" : ["USB_1", "USB_2" ,"USB_3"],
} }
}, },
)
},
{
"STM": (
{"target": "NUCLEO_F446RE", {"target": "NUCLEO_F446RE",
"toolchains": "GCC_ARM", "toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
@ -259,6 +303,10 @@ linking_list = [
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
} }
}, },
)
},
{
"NUVOTON": (
{"target": "NUMAKER_PFM_NUC472", {"target": "NUMAKER_PFM_NUC472",
"toolchains": "GCC_ARM", "toolchains": "GCC_ARM",
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
@ -277,18 +325,22 @@ linking_list = [
"usb" : ["USB_1", "USB_2" ,"USB_3"], "usb" : ["USB_1", "USB_2" ,"USB_3"],
} }
} }
)
}
] ]
################################################################################ ################################################################################
# Driver # Driver
def run_builds(dry_run): def run_builds(dry_run, vendor):
for build in build_list: for vendor_list in build_list:
if vendor in vendor_list:
for build in vendor_list[vendor]:
toolchain_list = build["toolchains"] toolchain_list = build["toolchains"]
if type(toolchain_list) != type([]): toolchain_list = [toolchain_list] if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
for toolchain in 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", []) libs = build.get("libs", [])
if libs: if libs:
cmdline = cmdline + " ".join(["--" + l for l in libs]) cmdline = cmdline + " ".join(["--" + l for l in libs])
@ -298,11 +350,13 @@ def run_builds(dry_run):
sys.exit(1) 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 """ 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. 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"] toolchain_list = link["toolchains"]
if type(toolchain_list) != type([]): if type(toolchain_list) != type([]):
toolchain_list = [toolchain_list] toolchain_list = [toolchain_list]
@ -318,7 +372,7 @@ def run_test_linking(dry_run):
if os.system(cmdline) != 0: if os.system(cmdline) != 0:
sys.exit(1) sys.exit(1)
def run_test_testsuite(dry_run): def run_test_testsuite(dry_run, vendor):
cmdline = "python tools/singletest.py --version" cmdline = "python tools/singletest.py --version"
print "Executing: " + cmdline print "Executing: " + cmdline
if not dry_run: if not dry_run:
@ -326,6 +380,16 @@ def run_test_testsuite(dry_run):
sys.exit(1) sys.exit(1)
if __name__ == "__main__": if __name__ == "__main__":
run_builds("-s" in sys.argv) parser = ArgumentParser()
run_test_linking("-s" in sys.argv)
run_test_testsuite("-s" in sys.argv) 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)