diff --git a/.cirrus.yml b/.cirrus.yml index c7cc780d9a..78810576cb 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -73,6 +73,13 @@ env: # Linux EOL timelines: https://linuxlifecycle.com/ # Fedora (~13 months): https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle +fedora33_task: + container: + # Fedora 33 EOL: Around November 2022 + dockerfile: ci/fedora-33/Dockerfile + << : *RESOURCES_TEMPLATE + << : *CI_TEMPLATE + fedora32_task: container: # Fedora 32 EOL: Around May 2021 @@ -80,10 +87,10 @@ fedora32_task: << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE -centos7_task: +fedora31_task: container: - # CentOS 7 EOL: June 30, 2024 - dockerfile: ci/centos-7/Dockerfile + # Fedora 31 EOL: Nov 24 2021 + dockerfile: ci/fedora-31/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE @@ -99,6 +106,20 @@ centos8_task: path: build.tgz benchmark_script: ./ci/benchmark.sh +centos7_task: + container: + # CentOS 7 EOL: June 30, 2024 + dockerfile: ci/centos-7/Dockerfile + << : *RESOURCES_TEMPLATE + << : *CI_TEMPLATE + +debian10_task: + container: + # Debian 10 EOL: June 2024 + dockerfile: ci/debian-10/Dockerfile + << : *RESOURCES_TEMPLATE + << : *CI_TEMPLATE + debian9_task: container: # Debian 9 EOL: June 2022 @@ -113,6 +134,13 @@ debian9_32bit_task: << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE +ubuntu20_task: + container: + # Ubuntu 20.04 EOL: April 2025 + dockerfile: ci/ubuntu-20.04/Dockerfile + << : *RESOURCES_TEMPLATE + << : *CI_TEMPLATE + ubuntu18_task: container: # Ubuntu 18.04 EOL: April 2023 @@ -144,10 +172,20 @@ macos_task: CIRRUS_WORKING_DIR: /tmp/zeek # FreeBSD EOL timelines: https://www.freebsd.org/security/security.html#sup -freebsd_task: +freebsd12_task: freebsd_instance: # FreeBSD 12 EOL: June 30, 2024 - image_family: freebsd-12-1 + image_family: freebsd-12-2 + cpu: 8 + # Not allowed to request less than 8GB for an 8 CPU FreeBSD VM. + memory: 8GB + prepare_script: ./ci/freebsd/prepare.sh + << : *CI_TEMPLATE + +freebsd11_task: + freebsd_instance: + # FreeBSD 11 EOL: September 30, 2021 + image_family: freebsd-11-4 cpu: 8 # Not allowed to request less than 8GB for an 8 CPU FreeBSD VM. memory: 8GB diff --git a/ci/debian-10/Dockerfile b/ci/debian-10/Dockerfile new file mode 100644 index 0000000000..2a9d29d259 --- /dev/null +++ b/ci/debian-10/Dockerfile @@ -0,0 +1,42 @@ +FROM debian:10 + +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + +RUN apt-get update && apt-get -y install \ + git \ + cmake \ + make \ + gcc \ + g++ \ + flex \ + bison \ + libpcap-dev \ + libssl-dev \ + python3 \ + python3-dev \ + python3-pip\ + swig \ + zlib1g-dev \ + libkrb5-dev \ + bsdmainutils \ + sqlite3 \ + curl \ + wget \ + xz-utils \ + clang \ + libc++-7-dev \ + libc++abi-7-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 +RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++ 100 + +# Many distros adhere to PEP 394's recommendation for `python` = `python2` so +# this is a simple workaround until we drop Python 2 support and explicitly +# use `python3` for all invocations (e.g. in shebangs). +RUN ln -sf /usr/bin/python3 /usr/local/bin/python +RUN ln -sf /usr/bin/pip3 /usr/local/bin/pip + +RUN pip install junit2html + +ENV CXXFLAGS=-stdlib=libc++ diff --git a/ci/debian-9-32bit/Dockerfile b/ci/debian-9-32bit/Dockerfile index 053c3ea760..9ff5c2161d 100644 --- a/ci/debian-9-32bit/Dockerfile +++ b/ci/debian-9-32bit/Dockerfile @@ -1,5 +1,7 @@ FROM i386/debian:9 +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + RUN apt-get update && apt-get -y install \ git \ cmake \ diff --git a/ci/debian-9/Dockerfile b/ci/debian-9/Dockerfile index 6f961aa9ac..e8fcd03e16 100644 --- a/ci/debian-9/Dockerfile +++ b/ci/debian-9/Dockerfile @@ -1,5 +1,7 @@ FROM debian:9 +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + RUN apt-get update && apt-get -y install \ git \ cmake \ diff --git a/ci/fedora-31/Dockerfile b/ci/fedora-31/Dockerfile new file mode 100644 index 0000000000..bc71a8a795 --- /dev/null +++ b/ci/fedora-31/Dockerfile @@ -0,0 +1,31 @@ +FROM fedora:31 + +RUN yum -y install \ + bison \ + cmake \ + diffutils \ + findutils \ + flex \ + git \ + gcc \ + gcc-c++ \ + libpcap-devel \ + make \ + openssl \ + openssl-devel \ + python3 \ + python3-devel \ + python3-pip\ + sqlite \ + swig \ + which \ + zlib-devel \ + && yum clean all && rm -rf /var/cache/yum + +# Many distros adhere to PEP 394's recommendation for `python` = `python2` so +# this is a simple workaround until we drop Python 2 support and explicitly +# use `python3` for all invocations (e.g. in shebangs). +RUN ln -sf /usr/bin/python3 /usr/local/bin/python +RUN ln -sf /usr/bin/pip3 /usr/local/bin/pip + +RUN pip install junit2html diff --git a/ci/fedora-33/Dockerfile b/ci/fedora-33/Dockerfile new file mode 100644 index 0000000000..3124d85bf5 --- /dev/null +++ b/ci/fedora-33/Dockerfile @@ -0,0 +1,31 @@ +FROM fedora:33 + +RUN yum -y install \ + bison \ + cmake \ + diffutils \ + findutils \ + flex \ + git \ + gcc \ + gcc-c++ \ + libpcap-devel \ + make \ + openssl \ + openssl-devel \ + python3 \ + python3-devel \ + python3-pip\ + sqlite \ + swig \ + which \ + zlib-devel \ + && yum clean all && rm -rf /var/cache/yum + +# Many distros adhere to PEP 394's recommendation for `python` = `python2` so +# this is a simple workaround until we drop Python 2 support and explicitly +# use `python3` for all invocations (e.g. in shebangs). +RUN ln -sf /usr/bin/python3 /usr/local/bin/python +RUN ln -sf /usr/bin/pip3 /usr/local/bin/pip + +RUN pip install junit2html diff --git a/ci/ubuntu-16.04/Dockerfile b/ci/ubuntu-16.04/Dockerfile index e591e1b949..5eeda5894f 100644 --- a/ci/ubuntu-16.04/Dockerfile +++ b/ci/ubuntu-16.04/Dockerfile @@ -1,5 +1,7 @@ FROM ubuntu:16.04 +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + RUN apt-get update && apt-get -y install \ git \ cmake \ diff --git a/ci/ubuntu-18.04/Dockerfile b/ci/ubuntu-18.04/Dockerfile index 7905812721..e298595f39 100644 --- a/ci/ubuntu-18.04/Dockerfile +++ b/ci/ubuntu-18.04/Dockerfile @@ -1,5 +1,7 @@ FROM ubuntu:18.04 +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + RUN apt-get update && apt-get -y install \ git \ cmake \ diff --git a/ci/ubuntu-20.04/Dockerfile b/ci/ubuntu-20.04/Dockerfile new file mode 100644 index 0000000000..3c48668794 --- /dev/null +++ b/ci/ubuntu-20.04/Dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:20.04 + +ENV DEBIAN_FRONTEND="noninteractive" TZ="America/Los_Angeles" + +RUN apt-get update && apt-get -y install \ + git \ + cmake \ + make \ + gcc \ + g++ \ + flex \ + bison \ + libpcap-dev \ + libssl-dev \ + python3 \ + python3-dev \ + python3-pip\ + swig \ + zlib1g-dev \ + libmaxminddb-dev \ + libkrb5-dev \ + bsdmainutils \ + sqlite3 \ + curl \ + wget \ + unzip \ + ruby \ + bc \ + lcov \ + && rm -rf /var/lib/apt/lists/* + +# Many distros adhere to PEP 394's recommendation for `python` = `python2` so +# this is a simple workaround until we drop Python 2 support and explicitly +# use `python3` for all invocations (e.g. in shebangs). +RUN ln -sf /usr/bin/python3 /usr/local/bin/python +RUN ln -sf /usr/bin/pip3 /usr/local/bin/pip + +RUN pip install junit2html +RUN gem install coveralls-lcov