1# Declare python as our language. This way we get our chosen Python version, 2# and pip is available. Gcc and clang are available anyway. 3language: python 4python: 3.5 5sudo: false 6cache: ccache 7 8jobs: 9 include: 10 - name: basic checks and reference configurations 11 addons: 12 apt: 13 packages: 14 - gnutls-bin 15 - doxygen 16 - graphviz 17 - gcc-arm-none-eabi 18 - libnewlib-arm-none-eabi 19 - gcc-arm-linux-gnueabi 20 - libc6-dev-armel-cross 21 script: 22 - tests/scripts/all.sh -k 'check_*' 23 - tests/scripts/all.sh -k test_default_out_of_box 24 - tests/scripts/all.sh -k test_ref_configs 25 - tests/scripts/all.sh -k build_arm_linux_gnueabi_gcc_arm5vte build_arm_none_eabi_gcc_m0plus 26 27 - name: full configuration 28 os: linux 29 dist: focal 30 addons: 31 apt: 32 packages: 33 - clang-10 34 - gnutls-bin 35 script: 36 # Do a manual build+test sequence rather than using all.sh, 37 # because there's no all.sh component that does what we want, 38 # which is a build with Clang >= 10 and ASan, running all the SSL 39 # testing. 40 # - The clang executable in the default PATH is Clang 7 on 41 # Travis's focal instances, but we want Clang >= 10. 42 # - Running all the SSL testing requires a specific set of 43 # OpenSSL and GnuTLS versions and we don't want to bother 44 # with those on Travis. 45 # So we explicitly select clang-10 as the compiler, and we 46 # have ad hoc restrictions on SSL testing based on what is 47 # passing at the time of writing. We will remove these limitations 48 # gradually. 49 - make generated_files 50 - 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' 51 - make test 52 - programs/test/selftest 53 - tests/scripts/test_psa_constant_names.py 54 - tests/ssl-opt.sh 55 # Modern OpenSSL does not support null ciphers. 56 - tests/compat.sh -p OpenSSL -e 'NULL' 57 - tests/scripts/travis-log-failure.sh 58 # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. 59 - tests/compat.sh -p GnuTLS -e 'CAMELLIA' 60 - tests/scripts/travis-log-failure.sh 61 - tests/context-info.sh 62 63 - name: Windows 64 os: windows 65 # The language 'python' is currently unsupported on the 66 # Windows Build Environment. And 'generic' causes the job to get stuck 67 # on "Booting virtual machine". 68 language: c 69 before_install: 70 - choco install python --version=3.5.4 71 env: 72 # Add the directory where the Choco packages go 73 - PATH=/c/Python35:/c/Python35/Scripts:$PATH 74 - PYTHON=python.exe 75 script: 76 - type perl; perl --version 77 - type python; python --version 78 - scripts/make_generated_files.bat 79 # Logs appear out of sequence on Windows. Give time to catch up. 80 - sleep 5 81 - scripts/windows_msbuild.bat v141 # Visual Studio 2017 82 - visualc/VS2013/x64/Release/selftest.exe 83 84 - name: full configuration on arm64 85 os: linux 86 dist: focal 87 arch: arm64 88 addons: 89 apt: 90 packages: 91 - gcc 92 script: 93 # Do a manual build+test sequence rather than using all.sh. 94 # 95 # On Arm64 host of Travis CI, the time of `test_full_cmake_*` exceeds 96 # limitation of Travis CI. Base on `test_full_cmake_*`, we removed 97 # `ssl-opt.sh` and GnuTLS compat.sh here to meet the time limitation. 98 - scripts/config.py full 99 - make generated_files 100 - make CFLAGS='-O3 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' LDFLAGS='-Werror -fsanitize=address,undefined -fno-sanitize-recover=all' 101 - make test 102 - programs/test/selftest 103 - tests/scripts/test_psa_constant_names.py 104 # Modern OpenSSL does not support fixed ECDH or null ciphers. 105 - tests/compat.sh -p OpenSSL -e 'NULL\|ECDH_' 106 - tests/scripts/travis-log-failure.sh 107 - tests/context-info.sh 108 109 - name: full configuration(GnuTLS compat tests) on arm64 110 os: linux 111 dist: focal 112 arch: arm64 113 addons: 114 apt: 115 packages: 116 - clang 117 - gnutls-bin 118 script: 119 # Do a manual build+test sequence rather than using all.sh. 120 # 121 # On Arm64 host of Travis CI, the time of `test_full_cmake_*` exceeds 122 # limitation of Travis CI. Base on `test_full_cmake_*`, we removed 123 # `ssl-opt.sh` and OpenSSl compat.sh here to meet the time limitation. 124 - scripts/config.py full 125 - make generated_files 126 - make CC=clang CFLAGS='-O3 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' LDFLAGS='-Werror -fsanitize=address,undefined -fno-sanitize-recover=all' 127 # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. 128 - tests/compat.sh -p GnuTLS -e 'CAMELLIA' 129 - tests/scripts/travis-log-failure.sh 130 - tests/context-info.sh 131 132after_failure: 133- tests/scripts/travis-log-failure.sh 134 135env: 136 global: 137 - SEED=1 138 - secure: "JECCru6HASpKZ0OLfHh8f/KXhKkdrCwjquZghd/qbA4ksxsWImjR7KEPERcaPndXEilzhDbKwuFvJiQX2duVgTGoq745YGhLZIjzo1i8tySkceCVd48P8WceYGz+F/bmY7r+m6fFNuxDSoGGSVeA4Lnjvmm8PFUP45YodDV9no4=" 139 140install: 141 - $PYTHON scripts/min_requirements.py 142 143addons: 144 apt: 145 packages: 146 - gnutls-bin 147 coverity_scan: 148 project: 149 name: "ARMmbed/mbedtls" 150 notification_email: support-mbedtls@arm.com 151 build_command_prepend: 152 build_command: make 153 branch_pattern: coverity_scan 154