Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
micropython/.travis.yml
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
158 lines (146 sloc)
5.95 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# global options | |
language: | |
- c | |
compiler: | |
- gcc | |
cache: | |
directories: | |
- "${HOME}/persist" | |
env: | |
global: | |
- MAKEOPTS="-j4" | |
# define the successive stages | |
stages: | |
- name: test | |
# define the jobs for the stages | |
# order of the jobs has longest running first to optimise total time | |
jobs: | |
include: | |
# stm32 port | |
- stage: test | |
env: NAME="stm32 port build" | |
install: | |
# need newer gcc version for Cortex-M7 support | |
- sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded | |
- sudo apt-get update -qq || true | |
- sudo apt-get install --allow-unauthenticated gcc-arm-none-eabi | |
- arm-none-eabi-gcc --version | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/stm32 | |
- make ${MAKEOPTS} -C ports/stm32 BOARD=PYBV11 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1 | |
- make ${MAKEOPTS} -C ports/stm32 BOARD=STM32F769DISC | |
- make ${MAKEOPTS} -C ports/stm32 BOARD=STM32L476DISC | |
# qemu-arm port | |
- stage: test | |
env: NAME="qemu-arm port build and tests" | |
install: | |
# need newer gcc version for nano.specs | |
- sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded | |
- sudo apt-get update -qq || true | |
- sudo apt-get install --allow-unauthenticated gcc-arm-none-eabi | |
- sudo apt-get install qemu-system | |
- arm-none-eabi-gcc --version | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/qemu-arm -f Makefile.test test | |
after_failure: | |
- grep "FAIL" ports/qemu-arm/build/console.out | |
# unix coverage | |
- stage: test | |
env: NAME="unix coverage build and tests" | |
install: | |
# a specific urllib3 version is needed for requests and cpp-coveralls to work together | |
- sudo pip install -Iv urllib3==1.22 | |
- sudo pip install cpp-coveralls | |
- gcc --version | |
- python3 --version | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/unix deplibs | |
- make ${MAKEOPTS} -C ports/unix coverage | |
# run the main test suite | |
- (cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests) | |
- (cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests -d thread) | |
- (cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests --emit native) | |
- (cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/micropython_coverage ./run-tests --via-mpy -d basics float) | |
# test when input script comes from stdin | |
- cat tests/basics/0prelim.py | ports/unix/micropython_coverage | grep -q 'abc' | |
# run coveralls coverage analysis (try to, even if some builds/tests failed) | |
- (cd ports/unix && coveralls --root ../.. --build-root . --gcov $(which gcov) --gcov-options '\-o build-coverage/' --include py --include extmod) | |
after_failure: | |
- (cd tests && for exp in *.exp; do testbase=$(basename $exp .exp); echo -e "\nFAILURE $testbase"; diff -u $testbase.exp $testbase.out; done) | |
# standard unix port | |
- stage: test | |
env: NAME="unix port build and tests" | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/unix deplibs | |
- make ${MAKEOPTS} -C ports/unix | |
- make ${MAKEOPTS} -C ports/unix test | |
# unix nanbox | |
- stage: test | |
env: NAME="unix nanbox port build and tests" | |
install: | |
- sudo apt-get install gcc-multilib libffi-dev:i386 | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/unix deplibs | |
- make ${MAKEOPTS} -C ports/unix nanbox | |
- (cd tests && MICROPY_CPYTHON3=python3 MICROPY_MICROPYTHON=../ports/unix/micropython_nanbox ./run-tests) | |
# unix stackless | |
- stage: test | |
env: NAME="unix stackless port build and tests" | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/unix deplibs | |
- make ${MAKEOPTS} -C ports/unix CFLAGS_EXTRA="-DMICROPY_STACKLESS=1 -DMICROPY_STACKLESS_STRICT=1" | |
- make ${MAKEOPTS} -C ports/unix test | |
# windows port via mingw | |
- stage: test | |
env: NAME="windows port build via mingw" | |
install: | |
- sudo apt-get install gcc-mingw-w64 | |
script: | |
- make ${MAKEOPTS} -C mpy-cross | |
- make ${MAKEOPTS} -C ports/windows CROSS_COMPILE=i686-w64-mingw32- | |
# nrf port | |
- stage: test | |
env: NAME="nrf port build" | |
install: | |
# need newer gcc version to support variables in linker script | |
- sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa | |
- sudo apt-get update -qq || true | |
- sudo apt-get install gcc-arm-embedded | |
- arm-none-eabi-gcc --version | |
script: | |
- make ${MAKEOPTS} -C ports/nrf | |
# bare-arm and minimal ports | |
- stage: test | |
env: NAME="bare-arm and minimal ports build" | |
install: | |
- sudo apt-get install gcc-arm-none-eabi | |
- arm-none-eabi-gcc --version | |
script: | |
- make ${MAKEOPTS} -C ports/bare-arm | |
- make ${MAKEOPTS} -C ports/minimal CROSS=1 build/firmware.bin | |
- ls -l ports/minimal/build/firmware.bin | |
- tools/check_code_size.sh | |
- mkdir -p ${HOME}/persist | |
# Save new firmware for reference, but only if building a main branch, not a pull request | |
- 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cp ports/minimal/build/firmware.bin ${HOME}/persist/; fi' | |
# cc3200 port | |
- stage: test | |
env: NAME="cc3200 port build" | |
install: | |
- sudo apt-get install gcc-arm-none-eabi | |
script: | |
- make ${MAKEOPTS} -C ports/cc3200 BTARGET=application BTYPE=release | |
- make ${MAKEOPTS} -C ports/cc3200 BTARGET=bootloader BTYPE=release | |
# teensy port | |
- stage: test | |
env: NAME="teensy port build" | |
install: | |
- sudo apt-get install gcc-arm-none-eabi | |
script: | |
- make ${MAKEOPTS} -C ports/teensy |