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: env:
global: global:
@ -15,6 +18,7 @@ cache:
pip: true pip: true
directories: directories:
- $HOME/.cache/apt - $HOME/.cache/apt
- $HOME/gcc-arm-none-eabi-6-2017-q2-update
before_install: before_install:
- bash -c "$STATUS" pending "Local $NAME testing is in progress" - bash -c "$STATUS" pending "Local $NAME testing is in progress"
@ -36,8 +40,7 @@ after_failure:
matrix: matrix:
include: include:
- python: '2.7' - env:
env:
- NAME=docs - NAME=docs
install: install:
# Install dependencies # Install dependencies
@ -68,19 +71,13 @@ matrix:
find -name "*.s" | tee BUILD/badasm | find -name "*.s" | tee BUILD/badasm |
sed -e "s/^/Bad Assembler file name found: /" && [ ! -s BUILD/badasm ] sed -e "s/^/Bad Assembler file name found: /" && [ ! -s BUILD/badasm ]
- python: '2.7' - env:
env:
- NAME=tools - NAME=tools
install: install:
# Install dependencies # Install dependencies
- sudo apt-get install gcc-arm-embedded - sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt - pip install -r requirements.txt
- pip install --user pytest - pip install pytest pylint hypothesis mock coverage coveralls
- pip install --user pylint
- pip install --user hypothesis
- pip install --user mock
- pip install --user coverage
- pip install --user coveralls
# Print versions we use # Print versions we use
- arm-none-eabi-gcc --version - arm-none-eabi-gcc --version
- python --version - python --version
@ -96,14 +93,13 @@ matrix:
# Report success since we have overridden default behaviour # Report success since we have overridden default behaviour
- bash -c "$STATUS" success "Local $NAME testing has passed" - bash -c "$STATUS" success "Local $NAME testing has passed"
- python: '2.7' - env:
env:
- NAME=events - NAME=events
- EVENTS=events - EVENTS=events
install: install:
# Install dependencies # Install dependencies
- sudo apt-get install gcc-arm-embedded - sudo apt-get install gcc-arm-embedded
- pip install --user -r requirements.txt - pip install -r requirements.txt
# Print versions we use # Print versions we use
- arm-none-eabi-gcc --version - arm-none-eabi-gcc --version
- gcc --version - gcc --version
@ -115,14 +111,13 @@ matrix:
# Run local equeue tests # Run local equeue tests
- make -C $EVENTS/equeue test - make -C $EVENTS/equeue test
- python: '2.7' - env:
env:
- NAME=littlefs - NAME=littlefs
- LITTLEFS=features/filesystem/littlefs - LITTLEFS=features/filesystem/littlefs
install: install:
# Install dependencies # Install dependencies
- sudo apt-get install gcc-arm-embedded fuse libfuse-dev - 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 - git clone https://github.com/armmbed/spiflash-driver.git
# Print versions # Print versions
- arm-none-eabi-gcc --version - arm-none-eabi-gcc --version
@ -162,13 +157,16 @@ matrix:
- ls MOUNT/littlefs - ls MOUNT/littlefs
- CFLAGS="-Wno-format" make -CMOUNT/littlefs -B test_dirs QUIET=1 - CFLAGS="-Wno-format" make -CMOUNT/littlefs -B test_dirs QUIET=1
- python: '2.7' - &mbed-2
env: env: NAME=mbed2-NXP
- NAME=mbed2
install: install:
# Install dependencies # Install dependencies
- sudo apt-get install gcc-arm-embedded - export GCC_DIR=$HOME/gcc-arm-none-eabi-6-2017-q2-update
- pip install --user -r requirements.txt - 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 # Print versions we use
- arm-none-eabi-gcc --version - arm-none-eabi-gcc --version
- python --version - python --version
@ -177,6 +175,16 @@ 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 "${NAME#mbed2-}"
- python2 -u tools/build_travis.py | sed -n '/^Executing/p' - <<: *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 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)