Merge pull request #2003 from C47D/travis_check_new_boards
Add check to travis to make sure new boards are built, fix #1886
This commit is contained in:
commit
8eab946c5b
13
.travis.yml
13
.travis.yml
@ -21,11 +21,11 @@ git:
|
||||
# that SDK is shortest and add it there. In the case of major re-organizations,
|
||||
# just try to make the builds "about equal in run time"
|
||||
env:
|
||||
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="circuitplayground_express mini_sam_m4 grandcentral_m4_express capablerobot_usbhub pygamer pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr electronut_labs_blip" TRAVIS_SDK=arm:nrf
|
||||
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="trinket_m0_haxpress circuitplayground_express mini_sam_m4 grandcentral_m4_express capablerobot_usbhub pygamer pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr electronut_labs_blip" TRAVIS_SDK=arm:nrf
|
||||
- TRAVIS_BOARDS="metro_m0_express metro_m4_express metro_m4_airlift_lite pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo bast_pro_mini_m0 datum_distance pyruler" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech pygamer_advance datum_imu" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1 datum_light" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge pybadge_airlift datum_weather" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="cp32-m4 feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech pygamer_advance datum_imu" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_m0_supersized feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1 datum_light" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="datalore_ip_m4 circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge pybadge_airlift datum_weather" TRAVIS_SDK=arm
|
||||
|
||||
addons:
|
||||
artifacts:
|
||||
@ -71,7 +71,6 @@ before_script:
|
||||
- function var_search () { case "$1" in *$2*) true;; *) false;; esac; }
|
||||
- sudo dpkg --add-architecture i386
|
||||
|
||||
|
||||
- (! var_search "${TRAVIS_SDK-}" arm || (wget https://s3.amazonaws.com/adafruit-circuit-python/gcc-arm-embedded_7-2018q2-1~xenial1_amd64.deb && sudo dpkg -i gcc-arm-embedded*_amd64.deb))
|
||||
|
||||
# For huzzah builds
|
||||
@ -86,6 +85,10 @@ before_script:
|
||||
- (! var_search "${TRAVIS_TESTS-}" docs || pip install --user Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter)
|
||||
- (! var_search "${TRAVIS_TESTS-}" translations || pip3 install --user polib)
|
||||
|
||||
# Check if there's any board missing in TRAVIS_BOARDS
|
||||
- cd tools && python3 -u travis_new_boards_check.py
|
||||
- cd ..
|
||||
|
||||
# report some good version numbers to the build
|
||||
- gcc --version
|
||||
- (! var_search "${TRAVIS_SDK-}" arm || arm-none-eabi-gcc --version)
|
||||
|
@ -11,3 +11,6 @@ SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "S25FL064L"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 60
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -11,3 +11,5 @@ SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = W25Q32BV
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
SUPEROPT_GC = 0
|
||||
|
51
tools/travis_new_boards_check.py
Normal file
51
tools/travis_new_boards_check.py
Normal file
@ -0,0 +1,51 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
|
||||
import build_board_info
|
||||
|
||||
# Get boards in json format
|
||||
boards_info_json = build_board_info.get_board_mapping()
|
||||
|
||||
# Get all the boards out of the json format
|
||||
info_boards = [board for board in boards_info_json.keys() if not boards_info_json[board].get("alias", False)]
|
||||
|
||||
# We need to know the path of the .travis.yml file
|
||||
base_path = os.path.dirname(__file__)
|
||||
travis_path = os.path.abspath(os.path.join(base_path, '..', '.travis.yml'))
|
||||
|
||||
# Loading board list based on TRAVIS_BOARDS env variable on .travis.yml
|
||||
travis_boards = []
|
||||
with open(travis_path, 'r') as travis:
|
||||
|
||||
# Get all lines that contain the substring 'TRAVIS_BOARDS'
|
||||
for line in travis:
|
||||
|
||||
# Get the lines with TRAVIS_BOARDS= in it
|
||||
if line.find('TRAVIS_BOARDS=') is not -1:
|
||||
# Store all the boards names into travis_boards
|
||||
begin_of_names = line.find('TRAVIS_BOARDS=') + len('TRAVIS_BOARDS=') + 1
|
||||
end_of_names = line.rfind('"')
|
||||
boards = line[begin_of_names:end_of_names]
|
||||
boards = boards.split(' ')
|
||||
travis_boards.extend(boards)
|
||||
|
||||
# We've reached the end of the env: section
|
||||
elif 'addons' in line:
|
||||
break
|
||||
else:
|
||||
pass
|
||||
|
||||
# All the travis_boards elements must be on info_boards
|
||||
info_boards.sort()
|
||||
travis_boards.sort()
|
||||
|
||||
missing_boards = set(info_boards) - set(travis_boards)
|
||||
|
||||
if missing_boards:
|
||||
print('Boards missing in TRAVIS_BOARDS:')
|
||||
for board in missing_boards:
|
||||
print(board)
|
||||
sys.exit(1)
|
Loading…
x
Reference in New Issue
Block a user