| # Declare python as our language. This way we get our chosen Python version, |
| # and pip is available. Gcc and clang are available anyway. |
| language: python |
| python: 3.5 |
| sudo: false |
| cache: ccache |
| |
| jobs: |
| include: |
| - name: basic checks and reference configurations |
| addons: |
| apt: |
| packages: |
| - gnutls-bin |
| - doxygen |
| - graphviz |
| - gcc-arm-none-eabi |
| - libnewlib-arm-none-eabi |
| - gcc-arm-linux-gnueabi |
| - libc6-dev-armel-cross |
| script: |
| - tests/scripts/all.sh -k 'check_*' |
| - tests/scripts/all.sh -k test_default_out_of_box |
| - tests/scripts/all.sh -k test_ref_configs |
| - tests/scripts/all.sh -k build_arm_linux_gnueabi_gcc_arm5vte build_arm_none_eabi_gcc_m0plus |
| |
| - name: full configuration |
| os: linux |
| dist: focal |
| addons: |
| apt: |
| packages: |
| - clang-10 |
| - gnutls-bin |
| script: |
| # Do a manual build+test sequence rather than using all.sh, |
| # because there's no all.sh component that does what we want, |
| # which is a build with Clang >= 10 and ASan, running all the SSL |
| # testing. |
| # - The clang executable in the default PATH is Clang 7 on |
| # Travis's focal instances, but we want Clang >= 10. |
| # - Running all the SSL testing requires a specific set of |
| # OpenSSL and GnuTLS versions and we don't want to bother |
| # with those on Travis. |
| # So we explicitly select clang-10 as the compiler, and we |
| # have ad hoc restrictions on SSL testing based on what is |
| # passing at the time of writing. We will remove these limitations |
| # gradually. |
| - make generated_files |
| - make CC=clang-10 CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all -O2' LDFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all' |
| - make test |
| - programs/test/selftest |
| - tests/scripts/test_psa_constant_names.py |
| - tests/ssl-opt.sh |
| # Modern OpenSSL does not support null ciphers. |
| - tests/compat.sh -p OpenSSL -e 'NULL' |
| - tests/scripts/travis-log-failure.sh |
| # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. |
| - tests/compat.sh -p GnuTLS -e 'CAMELLIA' |
| - tests/scripts/travis-log-failure.sh |
| - tests/context-info.sh |
| |
| - name: Windows |
| os: windows |
| # The language 'python' is currently unsupported on the |
| # Windows Build Environment. And 'generic' causes the job to get stuck |
| # on "Booting virtual machine". |
| language: c |
| before_install: |
| - choco install python --version=3.5.4 |
| env: |
| # Add the directory where the Choco packages go |
| - PATH=/c/Python35:/c/Python35/Scripts:$PATH |
| - PYTHON=python.exe |
| script: |
| - type perl; perl --version |
| - type python; python --version |
| - scripts/make_generated_files.bat |
| # Logs appear out of sequence on Windows. Give time to catch up. |
| - sleep 5 |
| - scripts/windows_msbuild.bat v141 # Visual Studio 2017 |
| - visualc/VS2013/x64/Release/selftest.exe |
| |
| - name: full configuration on arm64 |
| os: linux |
| dist: focal |
| arch: arm64 |
| addons: |
| apt: |
| packages: |
| - gcc |
| script: |
| # Do a manual build+test sequence rather than using all.sh. |
| # |
| # On Arm64 host of Travis CI, the time of `test_full_cmake_*` exceeds |
| # limitation of Travis CI. Base on `test_full_cmake_*`, we removed |
| # `ssl-opt.sh` and GnuTLS compat.sh here to meet the time limitation. |
| - scripts/config.py full |
| - make generated_files |
| - make CFLAGS='-O3 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' LDFLAGS='-Werror -fsanitize=address,undefined -fno-sanitize-recover=all' |
| - make test |
| - programs/test/selftest |
| - tests/scripts/test_psa_constant_names.py |
| # Modern OpenSSL does not support fixed ECDH or null ciphers. |
| - tests/compat.sh -p OpenSSL -e 'NULL\|ECDH_' |
| - tests/scripts/travis-log-failure.sh |
| - tests/context-info.sh |
| |
| - name: full configuration(GnuTLS compat tests) on arm64 |
| os: linux |
| dist: focal |
| arch: arm64 |
| addons: |
| apt: |
| packages: |
| - clang |
| - gnutls-bin |
| script: |
| # Do a manual build+test sequence rather than using all.sh. |
| # |
| # On Arm64 host of Travis CI, the time of `test_full_cmake_*` exceeds |
| # limitation of Travis CI. Base on `test_full_cmake_*`, we removed |
| # `ssl-opt.sh` and OpenSSl compat.sh here to meet the time limitation. |
| - scripts/config.py full |
| - make generated_files |
| - make CC=clang CFLAGS='-O3 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' LDFLAGS='-Werror -fsanitize=address,undefined -fno-sanitize-recover=all' |
| # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. |
| - tests/compat.sh -p GnuTLS -e 'CAMELLIA' |
| - tests/scripts/travis-log-failure.sh |
| - tests/context-info.sh |
| |
| after_failure: |
| - tests/scripts/travis-log-failure.sh |
| |
| env: |
| global: |
| - SEED=1 |
| - secure: "JECCru6HASpKZ0OLfHh8f/KXhKkdrCwjquZghd/qbA4ksxsWImjR7KEPERcaPndXEilzhDbKwuFvJiQX2duVgTGoq745YGhLZIjzo1i8tySkceCVd48P8WceYGz+F/bmY7r+m6fFNuxDSoGGSVeA4Lnjvmm8PFUP45YodDV9no4=" |
| |
| install: |
| - $PYTHON scripts/min_requirements.py |
| |
| addons: |
| apt: |
| packages: |
| - gnutls-bin |
| coverity_scan: |
| project: |
| name: "ARMmbed/mbedtls" |
| notification_email: support-mbedtls@arm.com |
| build_command_prepend: |
| build_command: make |
| branch_pattern: coverity_scan |