mbed-os
Dependents: cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more
Diff: .travis.yml
- Revision:
- 0:b74591d5ab33
diff -r 000000000000 -r b74591d5ab33 .travis.yml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.travis.yml Mon Dec 11 17:54:04 2017 +0000 @@ -0,0 +1,163 @@ + +env: + global: + - > + STATUS=$'curl -so/dev/null --user $MBED_BOT --request POST + https://api.github.com/repos/$TRAVIS_REPO_SLUG/statuses/${TRAVIS_PULL_REQUEST_SHA:-$TRAVIS_COMMIT} + --data @- << DATA\n{ + "state": "$0", + "description": "$1", + "context": "travis-ci/$NAME", + "target_url": "https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$TRAVIS_JOB_ID" + }\nDATA' + +before_install: + - bash -c "$STATUS" pending "Local $NAME testing is in progress" + # Make sure pipefail + - set -o pipefail + # Setup ppa to make sure arm-none-eabi-gcc is correct version + - sudo add-apt-repository -y ppa:team-gcc-arm-embedded/ppa + - sudo add-apt-repository -y ppa:libreoffice/libreoffice-4-2 + - sudo apt-get update -qq + +after_success: + - bash -c "$STATUS" success "Local $NAME testing has passed" + +after_failure: + - bash -c "$STATUS" failure "Local $NAME testing has failed" + +matrix: + include: + - python: '2.7' + env: + - NAME=tools + install: + # Install dependencies + - sudo apt-get install gcc-arm-embedded doxygen + - pip install --user -r requirements.txt + - pip install --user pytest + - pip install --user pylint + - pip install --user hypothesis + - pip install --user mock + - pip install --user coverage + - pip install --user coveralls + # Print versions we use + - arm-none-eabi-gcc --version + - python --version + - doxygen --version + before_script: + # Create BUILD directory for tests + - mkdir BUILD + script: + # Assert that the Doxygen build produced no warnings. + # The strange command below asserts that the Doxygen command had an + # output of zero length + - | + doxygen doxyfile_options 2>&1 | tee BUILD/doxygen.out && [ ! -s BUILD/doxygen.out ] + # Assert that all binary libraries are named correctly + # The strange command below asserts that there are exactly 0 libraries that do + # not start with lib + - | + find "(" -name "*.a" -or -name "*.ar" ")" -and -not -name "lib*" | tee BUILD/badlibs | sed -e "s/^/Bad library name found: /" && [ ! -s BUILD/badlibs ] + # Assert that all assebler files are named correctly + # The strange command below asserts that there are exactly 0 libraries that do + # end with .s + - | + find -name "*.s" | tee BUILD/badasm | sed -e "s/^/Bad Assembler file name found: /" && [ ! -s BUILD/badasm ] + # Run local testing on tools + # Note: These take ~40 minutes to run + - PYTHONPATH=. coverage run -a -m pytest tools/test + - python2 tools/test/pylint.py + - coverage run -a tools/project.py -S | sed -n '/^Total/p' + # - python2 -u tools/build_travis.py | sed -n '/^Executing/p' + - coverage html + after_success: + # Coverage for tools + - coveralls + # Report success since we have overridden default behaviour + - bash -c "$STATUS" success "Local $NAME testing has passed" + + - python: '2.7' + env: + - NAME=events + - EVENTS=events + 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 + - gcc --version + - python --version + script: + # Check that example compiles + - sed -n '/``` cpp/,/```/{/```$/Q;/```/d;p;}' $EVENTS/README.md > main.cpp + - python tools/make.py -t GCC_ARM -m K64F --source=. --build=BUILD/K64F/GCC_ARM -j0 + # Run local equeue tests + - make -C $EVENTS/equeue test + + - python: '2.7' + env: + - NAME=littlefs + - LITTLEFS=features/filesystem/littlefs + install: + # Install dependencies + - sudo apt-get install gcc-arm-embedded fuse libfuse-dev + - pip install --user -r requirements.txt + - git clone https://github.com/armmbed/spiflash-driver.git + # Print versions + - arm-none-eabi-gcc --version + - gcc --version + - python --version + - fusermount --version + before_script: + # Setup and patch littlefs-fuse + - git clone https://github.com/geky/littlefs-fuse littlefs_fuse + - echo '*' > littlefs_fuse/.mbedignore + - rm -rf littlefs_fuse/littlefs/* + - cp -r $(git ls-tree --name-only HEAD $LITTLEFS/littlefs/) littlefs_fuse/littlefs + # Create file-backed disk + - mkdir MOUNT + - sudo chmod a+rw /dev/loop0 + - dd if=/dev/zero bs=512 count=2048 of=DISK + - losetup /dev/loop0 DISK + script: + # Check that example compiles + - sed -n '/``` c++/,/```/{/```/d;p;}' $LITTLEFS/README.md > main.cpp + - python tools/make.py -t GCC_ARM -m K82F --source=. --build=BUILD/K82F/GCC_ARM -j0 + # Run local littlefs tests + - CFLAGS="-Wno-format" make -C$LITTLEFS/littlefs test QUIET=1 + # Run local littlefs tests with set of variations + - CFLAGS="-Wno-format -DLFS_READ_SIZE=64 -DLFS_PROG_SIZE=64" make -C$LITTLEFS/littlefs test QUIET=1 + - CFLAGS="-Wno-format -DLFS_READ_SIZE=1 -DLFS_PROG_SIZE=1" make -C$LITTLEFS/littlefs test QUIET=1 + - CFLAGS="-Wno-format -DLFS_READ_SIZE=512 -DLFS_PROG_SIZE=512" make -C$LITTLEFS/littlefs test QUIET=1 + - CFLAGS="-Wno-format -DLFS_BLOCK_COUNT=1023" make -C$LITTLEFS/littlefs test QUIET=1 + - CFLAGS="-Wno-format -DLFS_LOOKAHEAD=2048" make -C$LITTLEFS/littlefs test QUIET=1 + # Self-hosting littlefs fuzz test with littlefs-fuse + - make -Clittlefs_fuse + - littlefs_fuse/lfs --format /dev/loop0 + - littlefs_fuse/lfs /dev/loop0 MOUNT + - ls MOUNT + - mkdir MOUNT/littlefs + - cp -r $(git ls-tree --name-only HEAD $LITTLEFS/littlefs/) MOUNT/littlefs + - ls MOUNT/littlefs + - CFLAGS="-Wno-format" make -CMOUNT/littlefs -B test_dirs QUIET=1 + + - python: '2.7' + env: + - NAME=mbed2 + 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 + # Note: These take ~40 minutes to run + - python2 -u tools/build_travis.py | sed -n '/^Executing/p' +