Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
build_travis.py
00001 #!/usr/bin/env python2 00002 00003 """ 00004 Travis-CI build script 00005 00006 mbed SDK 00007 Copyright (c) 2011-2013 ARM Limited 00008 00009 Licensed under the Apache License, Version 2.0 (the "License"); 00010 you may not use this file except in compliance with the License. 00011 You may obtain a copy of the License at 00012 00013 http://www.apache.org/licenses/LICENSE-2.0 00014 00015 Unless required by applicable law or agreed to in writing, software 00016 distributed under the License is distributed on an "AS IS" BASIS, 00017 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00018 See the License for the specific language governing permissions and 00019 limitations under the License. 00020 """ 00021 from __future__ import print_function, division, absolute_import 00022 00023 import os 00024 import sys 00025 00026 from argparse import ArgumentParser 00027 00028 ################################################################################ 00029 # Configure builds here 00030 # "libs" can contain "dsp", "usb" 00031 00032 build_list = [ 00033 { 00034 "STM": 00035 ( 00036 { "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00037 { "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00038 { "target": "MTB_RAK811", "toolchains": "GCC_ARM"}, 00039 { "target": "NUCLEO_L152RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00040 { "target": "NUCLEO_F030R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00041 { "target": "NUCLEO_F031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00042 { "target": "NUCLEO_F042K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00043 { "target": "NUCLEO_F070RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00044 { "target": "NUCLEO_F072RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00045 { "target": "NUCLEO_F091RC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00046 { "target": "NUCLEO_F103RB", "toolchains": "GCC_ARM" }, 00047 { "target": "NUCLEO_F207ZG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00048 { "target": "NUCLEO_F302R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00049 { "target": "NUCLEO_F303K8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00050 { "target": "NUCLEO_F303RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00051 { "target": "NUCLEO_F303ZE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00052 { "target": "NUCLEO_F334R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00053 { "target": "NUCLEO_F401RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00054 { "target": "STEVAL_3DP001V1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00055 { "target": "NUCLEO_F410RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00056 { "target": "NUCLEO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00057 { "target": "NUCLEO_F412ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00058 { "target": "NUCLEO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00059 { "target": "NUCLEO_L432KC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00060 { "target": "MTB_ADV_WISE_1510", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00061 { "target": "NUCLEO_L476RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00062 { "target": "NUCLEO_L011K4", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00063 { "target": "NUCLEO_L031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00064 { "target": "NUCLEO_L073RZ", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00065 { "target": "NUCLEO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00066 { "target": "NUCLEO_F446RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00067 { "target": "NUCLEO_F446ZE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00068 { "target": "NUCLEO_F746ZG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00069 { "target": "NUCLEO_F767ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00070 { "target": "NUCLEO_L496ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00071 00072 { "target": "MOTE_L152RC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00073 00074 { "target": "ELMO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00075 00076 { "target": "MTS_MDOT_F405RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00077 { "target": "MTS_MDOT_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00078 { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00079 { "target": "ARCH_MAX", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00080 00081 { "target": "DISCO_F051R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00082 { "target": "DISCO_F303VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00083 { "target": "DISCO_F334C8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00084 { "target": "DISCO_F401VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00085 00086 { "target": "DISCO_F407VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00087 { "target": "DISCO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00088 { "target": "DISCO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00089 { "target": "DISCO_F469NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00090 { "target": "DISCO_F746NG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00091 { "target": "DISCO_F769NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00092 { "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00093 { "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00094 { "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00095 00096 # module manufacturer : muRata 00097 { "target": "MTB_MURATA_ABZ", "toolchains": "GCC_ARM", "libs": [] }, 00098 ), 00099 }, 00100 00101 { 00102 "NXP": 00103 ( 00104 { "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00105 { "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00106 { "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] }, 00107 00108 { "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] }, 00109 { "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00110 { "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00111 { "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00112 { "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00113 { "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00114 { "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00115 { "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00116 { "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00117 { "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00118 { "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00119 { "target": "KL43Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00120 { "target": "KL46Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00121 { "target": "K20D50M", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00122 { "target": "TEENSY3_1", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00123 { "target": "K64F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00124 { "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00125 { "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00126 { "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00127 ) 00128 }, 00129 00130 { 00131 "NORDIC": 00132 ( 00133 { "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00134 { "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00135 { "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00136 { "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00137 ) 00138 }, 00139 00140 { 00141 "SILICON_LABS": 00142 ( 00143 { "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00144 { "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00145 { "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00146 { "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00147 { "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00148 { "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00149 ) 00150 }, 00151 00152 { 00153 "MAXIM": 00154 ( 00155 { "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00156 { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00157 { "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00158 ) 00159 }, 00160 00161 { 00162 "ATMEL": 00163 ( 00164 { "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00165 { "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00166 { "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00167 { "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00168 ) 00169 }, 00170 00171 00172 { 00173 "NUVOTON": 00174 ( 00175 { "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00176 { "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00177 { "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00178 ) 00179 }, 00180 00181 00182 { 00183 "RENESAS": 00184 ( 00185 { "target": "RZ_A1H", "toolchains": "GCC_ARM" }, 00186 { "target": "GR_LYCHEE", "toolchains": "GCC_ARM" }, 00187 ) 00188 } 00189 ] 00190 00191 ################################################################################ 00192 # Configure example test building (linking against external mbed SDK libraries) 00193 00194 linking_list = [ 00195 { 00196 "NXP": ( 00197 {"target": "LPC1768", 00198 "toolchains": "GCC_ARM", 00199 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"], 00200 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00201 } 00202 }, 00203 {"target": "K64F", 00204 "toolchains": "GCC_ARM", 00205 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00206 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00207 } 00208 }, 00209 {"target": "K22F", 00210 "toolchains": "GCC_ARM", 00211 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00212 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00213 } 00214 }, 00215 {"target": "KL43Z", 00216 "toolchains": "GCC_ARM", 00217 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00218 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00219 } 00220 }, 00221 ) 00222 }, 00223 00224 { 00225 "STM": ( 00226 {"target": "NUCLEO_F446RE", 00227 "toolchains": "GCC_ARM", 00228 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00229 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00230 } 00231 }, 00232 {"target": "NUCLEO_F446ZE", 00233 "toolchains": "GCC_ARM", 00234 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00235 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00236 } 00237 }, 00238 {"target": "NUCLEO_F401RE", 00239 "toolchains": "GCC_ARM", 00240 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00241 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00242 } 00243 }, 00244 {"target": "NUCLEO_F411RE", 00245 "toolchains": "GCC_ARM", 00246 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00247 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00248 } 00249 }, 00250 {"target": "NUCLEO_F412ZG", 00251 "toolchains": "GCC_ARM", 00252 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00253 } 00254 }, 00255 {"target": "NUCLEO_F413ZH", 00256 "toolchains": "GCC_ARM", 00257 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00258 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00259 } 00260 }, 00261 {"target": "NUCLEO_F429ZI", 00262 "toolchains": "GCC_ARM", 00263 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00264 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00265 } 00266 }, 00267 {"target": "NUCLEO_F207ZG", 00268 "toolchains": "GCC_ARM", 00269 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00270 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00271 } 00272 }, 00273 {"target": "NUCLEO_F746ZG", 00274 "toolchains": "GCC_ARM", 00275 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00276 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00277 } 00278 }, 00279 {"target": "NUCLEO_F767ZI", 00280 "toolchains": "GCC_ARM", 00281 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00282 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00283 } 00284 }, 00285 {"target": "NUCLEO_L476RG", 00286 "toolchains": "GCC_ARM", 00287 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00288 } 00289 }, 00290 {"target": "DISCO_F429ZI", 00291 "toolchains": "GCC_ARM", 00292 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00293 } 00294 }, 00295 {"target": "DISCO_F407VG", 00296 "toolchains": "GCC_ARM", 00297 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00298 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00299 } 00300 }, 00301 {"target": "DISCO_F413ZH", 00302 "toolchains": "GCC_ARM", 00303 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00304 } 00305 }, 00306 {"target": "NUCLEO_F303ZE", 00307 "toolchains": "GCC_ARM", 00308 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00309 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00310 } 00311 }, 00312 {"target": "DISCO_L475VG_IOT01A", 00313 "toolchains": "GCC_ARM", 00314 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00315 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00316 } 00317 }, 00318 {"target": "DISCO_L476VG", 00319 "toolchains": "GCC_ARM", 00320 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00321 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00322 } 00323 }, 00324 {"target": "DISCO_L072CZ_LRWAN1", 00325 "toolchains": "GCC_ARM", 00326 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00327 } 00328 }, 00329 {"target": "MTB_MURATA_ABZ", 00330 "toolchains": "GCC_ARM", 00331 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00332 } 00333 }, 00334 ) 00335 }, 00336 { 00337 "NUVOTON": ( 00338 {"target": "NUMAKER_PFM_NUC472", 00339 "toolchains": "GCC_ARM", 00340 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00341 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00342 } 00343 }, 00344 {"target": "NUMAKER_PFM_M453", 00345 "toolchains": "GCC_ARM", 00346 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00347 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00348 } 00349 }, 00350 {"target": "NUMAKER_PFM_M487", 00351 "toolchains": "GCC_ARM", 00352 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00353 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00354 } 00355 } 00356 ) 00357 }, 00358 { 00359 "RENESAS": 00360 ( 00361 { 00362 "target": "RZ_A1H", 00363 "toolchains": "GCC_ARM", 00364 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00365 } 00366 }, 00367 { 00368 "target": "GR_LYCHEE", 00369 "toolchains": "GCC_ARM", 00370 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00371 } 00372 }, 00373 ) 00374 } 00375 ] 00376 00377 ################################################################################ 00378 00379 # Driver 00380 00381 def run_builds(dry_run, vendor): 00382 for vendor_list in build_list: 00383 if vendor in vendor_list: 00384 for build in vendor_list[vendor]: 00385 toolchain_list = build["toolchains"] 00386 if type(toolchain_list) != type([]): toolchain_list = [toolchain_list] 00387 for toolchain in toolchain_list: 00388 cmdline = ("%s tools/build.py -m %s -t %s -c --silent "% 00389 (sys.executable, build["target"], toolchain)) 00390 libs = build.get("libs", []) 00391 if libs: 00392 cmdline = cmdline + " ".join(["--" + l for l in libs]) 00393 print("Executing: %s" % cmdline) 00394 if not dry_run: 00395 if os.system(cmdline) != 0: 00396 sys.exit(1) 00397 00398 00399 def run_test_linking(dry_run, vendor): 00400 """ Function run make.py commands to build and link simple mbed SDK 00401 tests against few libraries to make sure there are no simple linking errors. 00402 """ 00403 for vendor_list in linking_list: 00404 if vendor in vendor_list: 00405 for link in vendor_list[vendor]: 00406 toolchain_list = link["toolchains"] 00407 if type(toolchain_list) != type([]): 00408 toolchain_list = [toolchain_list] 00409 for toolchain in toolchain_list: 00410 tests = link["tests"] 00411 # Call make.py for each test group for particular library 00412 for test_lib in tests: 00413 test_names = tests[test_lib] 00414 test_lib_switch = "--" + test_lib if test_lib else "" 00415 cmdline = ("%s tools/make.py -m %s -t %s -c --silent %s " 00416 "-n %s" % (sys.executable, link["target"], 00417 toolchain, test_lib_switch, 00418 ",".join(test_names))) 00419 print("Executing: %s" % cmdline) 00420 if not dry_run: 00421 if os.system(cmdline) != 0: 00422 sys.exit(1) 00423 00424 if __name__ == "__main__": 00425 parser = ArgumentParser() 00426 00427 parser.add_argument("--vendor", 00428 metavar="vendor", 00429 type=str.upper, 00430 help="Select a vendor to run travis tests" 00431 ) 00432 00433 options = parser.parse_args() 00434 00435 run_builds("-s" in sys.argv, options.vendor) 00436 run_test_linking("-s" in sys.argv, options.vendor)
Generated on Tue Jul 12 2022 18:18:28 by
