summaryrefslogtreecommitdiffstats
path: root/comm/third_party/botan/src/scripts/ci
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /comm/third_party/botan/src/scripts/ci
parentInitial commit. (diff)
downloadthunderbird-upstream.tar.xz
thunderbird-upstream.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/third_party/botan/src/scripts/ci')
-rw-r--r--comm/third_party/botan/src/scripts/ci/appveyor.yml90
-rw-r--r--comm/third_party/botan/src/scripts/ci/codecov.yml15
-rw-r--r--comm/third_party/botan/src/scripts/ci/lgtm.yml31
-rw-r--r--comm/third_party/botan/src/scripts/ci/setup_appveyor.bat19
-rwxr-xr-xcomm/third_party/botan/src/scripts/ci/setup_gh_actions.sh69
-rwxr-xr-xcomm/third_party/botan/src/scripts/ci/setup_travis.sh89
-rw-r--r--comm/third_party/botan/src/scripts/ci/travis.yml50
7 files changed, 363 insertions, 0 deletions
diff --git a/comm/third_party/botan/src/scripts/ci/appveyor.yml b/comm/third_party/botan/src/scripts/ci/appveyor.yml
new file mode 100644
index 0000000000..35345841a4
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/appveyor.yml
@@ -0,0 +1,90 @@
+
+clone_depth: 5
+
+environment:
+ SCCACHE_CACHE_SIZE: 160M
+ SCCACHE_VERSION: 0.2.12
+ APPVEYOR_SAVE_CACHE_ON_ERROR: true
+
+ matrix:
+
+ # MSVC 2015 DLL x86-32
+ - CC: VC2015
+ PLATFORM: x86
+ TARGET: shared
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+ BOOST_ROOT: "C:\\Libraries\\boost_1_69_0"
+ BOOST_LIBRARYDIR: "C:\\Libraries\\boost_1_69_0\\lib32-msvc-14.0"
+ BOOST_SYSTEM_LIBRARY: "libboost_system-vc140-mt-x32-1_69"
+ MAKE_TOOL: nmake
+ TARGET_CC: msvc
+ EXTRA_FLAGS: "--disable-werror"
+ DISABLED_TESTS: "certstor_system" # requires 'ISRG Root X1' / not in this AppVeyor image
+
+ # MSVC 2017 DLL x86-32
+ - CC: VC2017
+ PLATFORM: x86
+ TARGET: shared
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+ BOOST_ROOT: "C:\\Libraries\\boost_1_69_0"
+ BOOST_LIBRARYDIR: "C:\\Libraries\\boost_1_69_0\\lib32-msvc-14.1"
+ BOOST_SYSTEM_LIBRARY: "libboost_system-vc141-mt-x32-1_69"
+ MAKE_TOOL: jom
+ TARGET_CC: msvc
+ DISABLED_TESTS: "certstor_system" # requires 'ISRG Root X1' / not in this AppVeyor image
+
+ # MSVC 2017 DLL x86-64
+ - CC: VC2017
+ PLATFORM: x86_amd64
+ TARGET: shared
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+ BOOST_ROOT: "C:\\Libraries\\boost_1_69_0"
+ BOOST_LIBRARYDIR: "C:\\Libraries\\boost_1_69_0\\lib64-msvc-14.1"
+ BOOST_SYSTEM_LIBRARY: "libboost_system-vc141-mt-x64-1_69"
+ MAKE_TOOL: jom
+ TARGET_CC: msvc
+ DISABLED_TESTS: "certstor_system" # requires 'ISRG Root X1' / not in this AppVeyor image
+
+ # MSVC 2017 static x86-64
+ - CC: VC2017
+ PLATFORM: x86_amd64
+ TARGET: static
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+ BOOST_ROOT: "C:\\Libraries\\boost_1_69_0"
+ BOOST_LIBRARYDIR: "C:\\Libraries\\boost_1_69_0\\lib64-msvc-14.1"
+ BOOST_SYSTEM_LIBRARY: "libboost_system-vc141-mt-x64-1_69"
+ MAKE_TOOL: jom
+ TARGET_CC: msvc
+ EXTRA_FLAGS: "--extra-cxxflags=/DUNICODE --extra-cxxflags=/D_UNICODE"
+ DISABLED_TESTS: "certstor_system" # requires 'ISRG Root X1' / not in this AppVeyor image
+
+ # MSVC 2019 static x86-64 w/debug iterators
+ - CC: VC2019
+ PLATFORM: x86_amd64
+ TARGET: sanitizer
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
+ MAKE_TOOL: jom
+ TARGET_CC: msvc
+
+ # MinGW GCC
+ - CC: MinGW
+ PLATFORM: x86_amd64
+ TARGET: static
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
+ MAKE_TOOL: mingw32-make
+ TARGET_CC: gcc
+
+install:
+ - call src\scripts\ci\setup_appveyor.bat
+
+build_script:
+ - python src\scripts\ci_build.py --os=windows --cc=%TARGET_CC% --without-python3 --compiler-cache=sccache --make-tool=%MAKE_TOOL% --cpu=%PLATFORM% --disabled-tests=%DISABLED_TESTS% %EXTRA_FLAGS% %TARGET%
+
+# whitelist branches to avoid testing feature branches twice (as branch and as pull request)
+branches:
+ only:
+ - master
+ - release-2
+
+cache:
+ - C:\Users\appveyor\AppData\Local\Mozilla\sccache\cache
diff --git a/comm/third_party/botan/src/scripts/ci/codecov.yml b/comm/third_party/botan/src/scripts/ci/codecov.yml
new file mode 100644
index 0000000000..db26a6bd55
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/codecov.yml
@@ -0,0 +1,15 @@
+---
+
+# Documentation
+# https://github.com/codecov/support/wiki/Codecov-Yaml#full-yaml
+#
+# Validate this file
+# curl --data-binary @codecov.yml https://codecov.io/validate
+
+coverage:
+ status:
+ project:
+ default:
+ # Random seeds in tests lead to a +/-0.05% coverage span even for PRs
+ # that do not change source code
+ threshold: 0.05
diff --git a/comm/third_party/botan/src/scripts/ci/lgtm.yml b/comm/third_party/botan/src/scripts/ci/lgtm.yml
new file mode 100644
index 0000000000..fa2423858b
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/lgtm.yml
@@ -0,0 +1,31 @@
+
+queries:
+ - include: cpp/inconsistent-null-check
+ - include: cpp/overrunning-write
+ - include: cpp/unbounded-write
+ - include: cpp/offset-use-before-range-check
+ - include: cpp/incomplete-parity-check
+ - include: cpp/mistyped-function-arguments
+ - include: cpp/comparison-with-wider-type
+ - include: cpp/inconsistent-call-on-result
+ - include: cpp/incorrect-not-operator-usage
+ - include: cpp/stack-address-escape
+ - include: cpp/nested-loops-with-same-variable
+ - include: cpp/suspicious-allocation-size
+ - include: cpp/allocation-too-small
+ - include: cpp/uninitialized-local
+ - include: cpp/static-buffer-overflow
+ - include: cpp/suspicious-sizeof
+ - include: cpp/suspicious-pointer-scaling-void
+ - include: cpp/declaration-hides-variable
+ - include: cpp/empty-if
+ - include: cpp/unused-local-variable
+ - include: cpp/unused-static-function
+ - include: cpp/unused-static-variable
+ - exclude: cpp/fixme-comment
+
+extraction:
+ cpp:
+ configure:
+ command:
+ - ./configure.py --build-targets="static,shared,cli,tests,bogo_shim" --build-fuzzers=test --with-zlib --with-bzip2 --with-lzma --with-openssl --with-sqlite3 --no-store-vc-rev
diff --git a/comm/third_party/botan/src/scripts/ci/setup_appveyor.bat b/comm/third_party/botan/src/scripts/ci/setup_appveyor.bat
new file mode 100644
index 0000000000..5b48e78d8f
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/setup_appveyor.bat
@@ -0,0 +1,19 @@
+
+echo Current build setup CC="%CC%" PLATFORM="%PLATFORM%" TARGET="%TARGET%"
+
+if %CC% == VC2015 call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM%
+if %CC% == VC2017 call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %PLATFORM%
+if %CC% == VC2019 call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" %PLATFORM%
+if %CC% == MinGW set PATH=%PATH%;C:\msys64\mingw64\bin
+
+rem check compiler version
+if %CC% == MinGW g++ -v
+if not %CC% == MinGW cl
+
+appveyor DownloadFile https://github.com/mozilla/sccache/releases/download/%SCCACHE_VERSION%/sccache-%SCCACHE_VERSION%-x86_64-pc-windows-msvc.tar.gz
+tar -xf sccache-%SCCACHE_VERSION%-x86_64-pc-windows-msvc.tar.gz
+
+appveyor DownloadFile http://download.qt.io/official_releases/jom/jom.zip -FileName jom.zip
+7z e jom.zip
+
+set PATH=%PATH%;sccache-%SCCACHE_VERSION%-x86_64-pc-windows-msvc
diff --git a/comm/third_party/botan/src/scripts/ci/setup_gh_actions.sh b/comm/third_party/botan/src/scripts/ci/setup_gh_actions.sh
new file mode 100755
index 0000000000..33737ffe37
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/setup_gh_actions.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+# GitHub Actions setup script for Botan build
+#
+# (C) 2015,2017 Simon Warta
+# (C) 2016,2017,2018,2020 Jack Lloyd
+#
+# Botan is released under the Simplified BSD License (see license.txt)
+
+command -v shellcheck > /dev/null && shellcheck "$0" # Run shellcheck on this if available
+
+set -ex
+
+TARGET=$1
+
+if type -p "apt-get"; then
+ sudo apt-get -qq update
+ sudo apt-get -qq install ccache
+
+ if [ "$TARGET" = "valgrind" ]; then
+ sudo apt-get -qq install valgrind
+
+ elif [ "$TARGET" = "clang" ]; then
+ sudo apt-get -qq install clang
+
+ elif [ "$TARGET" = "cross-i386" ]; then
+ sudo apt-get -qq install g++-multilib linux-libc-dev libc6-dev-i386
+
+ elif [ "$TARGET" = "cross-win64" ]; then
+ sudo apt-get -qq install wine-development g++-mingw-w64-x86-64
+
+ elif [ "$TARGET" = "cross-arm64" ]; then
+ sudo apt-get -qq install qemu-user g++-aarch64-linux-gnu
+
+ elif [ "$TARGET" = "cross-ppc64" ]; then
+ sudo apt-get -qq install qemu-user g++-powerpc64le-linux-gnu
+
+ elif [ "$TARGET" = "cross-android-arm32" ] || [ "$TARGET" = "cross-android-arm64" ]; then
+ wget -nv https://dl.google.com/android/repository/"$ANDROID_NDK"-linux-x86_64.zip
+ unzip -qq "$ANDROID_NDK"-linux-x86_64.zip
+
+ elif [ "$TARGET" = "baremetal" ]; then
+ sudo apt-get -qq install gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib
+
+ echo 'extern "C" void __sync_synchronize() {}' >> src/tests/main.cpp
+ echo 'extern "C" void __sync_synchronize() {}' >> src/cli/main.cpp
+
+ elif [ "$TARGET" = "lint" ]; then
+ sudo apt-get -qq install pylint
+
+ elif [ "$TARGET" = "coverage" ]; then
+ sudo apt-get -qq install g++-8 softhsm2 libtspi-dev lcov python-coverage libboost-all-dev gdb
+ pip install --user codecov
+ echo "$HOME/.local/bin" >> "$GITHUB_PATH"
+
+ git clone --depth 1 --branch runner-changes https://github.com/randombit/boringssl.git
+
+ sudo chgrp -R "$(id -g)" /var/lib/softhsm/ /etc/softhsm
+ sudo chmod g+w /var/lib/softhsm/tokens
+
+ softhsm2-util --init-token --free --label test --pin 123456 --so-pin 12345678
+ echo "PKCS11_LIB=/usr/lib/softhsm/libsofthsm2.so" >> "$GITHUB_ENV"
+
+ elif [ "$TARGET" = "docs" ]; then
+ sudo apt-get -qq install doxygen python-docutils python3-sphinx
+ fi
+else
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache
+fi
diff --git a/comm/third_party/botan/src/scripts/ci/setup_travis.sh b/comm/third_party/botan/src/scripts/ci/setup_travis.sh
new file mode 100755
index 0000000000..f039e574dd
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/setup_travis.sh
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+# Travis CI setup script for Botan build
+#
+# (C) 2015,2017 Simon Warta
+# (C) 2016,2017,2018 Jack Lloyd
+
+command -v shellcheck > /dev/null && shellcheck "$0" # Run shellcheck on this if available
+
+set -ev
+
+if [ "$TRAVIS_OS_NAME" = "linux" ]; then
+
+ if [ "$TARGET" = "valgrind" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install valgrind
+
+ elif [ "$TARGET" = "gcc4.8" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install g++-4.8
+
+ elif [ "$TARGET" = "clang8" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install clang-8
+
+ elif [ "$TARGET" = "cross-i386" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install g++-multilib linux-libc-dev libc6-dev-i386
+
+ elif [ "$TARGET" = "cross-win64" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install wine-development g++-mingw-w64-x86-64
+
+ elif [ "$TARGET" = "cross-arm32" ]; then
+ sudo dpkg --add-architecture armhf
+ sudo apt-get -qq update
+ sudo apt-get install g++-arm-linux-gnueabihf
+ sudo apt-get install -o APT::Immediate-Configure=0 libc6:armhf libstdc++6:armhf
+
+ elif [ "$TARGET" = "cross-arm64" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install qemu-user g++-aarch64-linux-gnu
+
+ elif [ "$TARGET" = "cross-ppc32" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install qemu-user g++-powerpc-linux-gnu
+
+ elif [ "$TARGET" = "cross-ppc64" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install qemu-user g++-powerpc64le-linux-gnu
+
+ elif [ "$TARGET" = "cross-mips64" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install qemu-user g++-mips64-linux-gnuabi64
+
+ elif [ "$TARGET" = "cross-android-arm32" ] || [ "$TARGET" = "cross-android-arm64" ]; then
+ wget -nv https://dl.google.com/android/repository/"$ANDROID_NDK"-linux-x86_64.zip
+ unzip -qq "$ANDROID_NDK"-linux-x86_64.zip
+
+ elif [ "$TARGET" = "baremetal" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib
+
+ echo 'extern "C" void __sync_synchronize() {}' >> src/tests/main.cpp
+ echo 'extern "C" void __sync_synchronize() {}' >> src/cli/main.cpp
+
+ elif [ "$TARGET" = "lint" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install pylint
+
+ elif [ "$TARGET" = "coverage" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install g++-8 softhsm2 libtspi-dev lcov python-coverage libboost-all-dev gdb
+ pip install --user codecov
+ git clone --depth 1 --branch runner-changes-golang1.10 https://github.com/randombit/boringssl.git
+
+ sudo chgrp -R "$(id -g)" /var/lib/softhsm/ /etc/softhsm
+ sudo chmod g+w /var/lib/softhsm/tokens
+
+ softhsm2-util --init-token --free --label test --pin 123456 --so-pin 12345678
+
+ elif [ "$TARGET" = "docs" ]; then
+ sudo apt-get -qq update
+ sudo apt-get install doxygen python-docutils python3-sphinx
+ fi
+
+elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache
+fi
diff --git a/comm/third_party/botan/src/scripts/ci/travis.yml b/comm/third_party/botan/src/scripts/ci/travis.yml
new file mode 100644
index 0000000000..15609864c4
--- /dev/null
+++ b/comm/third_party/botan/src/scripts/ci/travis.yml
@@ -0,0 +1,50 @@
+language: cpp
+os: linux
+dist: focal
+compiler: gcc
+
+jobs:
+ include:
+ - name: Linux ppc64le (GCC)
+ arch: ppc64le
+ env:
+ - TARGET="shared"
+
+ - name: Linux arm64 (GCC)
+ arch: arm64
+ env:
+ - TARGET="shared"
+
+ - name: Linux GCC 4.8
+ dist: bionic
+ env:
+ - TARGET="gcc4.8"
+ - EXTRA_FLAGS="--disable-werror"
+
+install:
+ - ./src/scripts/ci/setup_travis.sh
+
+script:
+ - ./src/scripts/ci_build.py --os=$TRAVIS_OS_NAME --cc=$CC --cc-bin=$CXX --without-pylint3 --pkcs11-lib=$PKCS11_LIB $EXTRA_FLAGS $TARGET
+
+# whitelist branches to avoid testing feature branches twice (as branch and as pull request)
+branches:
+ only:
+ - master
+ - release-2
+ - coverity_scan
+
+git:
+ depth: 10
+
+cache:
+ ccache: true
+
+addons:
+ coverity_scan:
+ project:
+ name: "randombit/botan"
+ notification_email: jack@randombit.net
+ build_command_prepend: "./configure.py --no-optimizations --with-zlib --with-openssl"
+ build_command: "make -j2"
+ branch_pattern: coverity_scan