From d2e0c2f03645c9f224f1c10c920cb2c4f552de85 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Thu, 21 Apr 2022 17:19:18 -0700 Subject: [PATCH] CI: add Ubuntu 22.04 as a tested platform We should perhaps consider migrating the more unusual variants like the ASan jobs to Ubuntu 22.04 too in future. Github: closes #2234 --- .gitlab-ci.yml | 66 ++++++++++++++++++++++++++ ci/ubuntu-22.04/Dockerfile | 96 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 ci/ubuntu-22.04/Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36ba64fb8..a9dbb2c95 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -343,6 +343,18 @@ ubuntu21-10-build: variables: IMAGE: ubuntu-21.10 +ubuntu22-04-build: + <<: *deb_build_definition + needs: + - job: docker_build_ubuntu-22.04 + artifacts: false + - job: portable-source + artifacts: true + tags: + - linux + variables: + IMAGE: ubuntu-22.04 + ubuntu21-10-static-build: <<: *deb_build_definition before_script: @@ -691,6 +703,23 @@ ubuntu21-10-cmake-build: variables: IMAGE: ubuntu-21.10 +ubuntu22-04-cmake-build: + <<: *deb_build_definition + needs: + - job: docker_build_ubuntu-22.04 + artifacts: false + before_script: + - export build_system="cmake" + # fail on any compiler warnings + - export CFLAGS=-Werror + - export CXXFLAGS=-Werror + - export CMAKE_OPTIONS="-Dwith_cxx_tests=ON -Dwith_cxx_api=ON" + - export CMAKE_OPTIONS="$CMAKE_OPTIONS -Dwith_smyrna=ON" + tags: + - linux + variables: + IMAGE: ubuntu-22.04 + ubuntu21-10-cmake-minimal-build: <<: *deb_build_definition needs: @@ -962,6 +991,18 @@ ubuntu21-10-test: variables: IMAGE: ubuntu-21.10 +ubuntu22-04-test: + <<: *linux_test_definition + before_script: + - export build_system="autotools" + needs: + - job: "ubuntu22-04-build" + artifacts: true + tags: + - linux + variables: + IMAGE: ubuntu-22.04 + centos7-test: <<: *linux_test_definition before_script: @@ -1044,6 +1085,19 @@ ubuntu21-10-cmake-test: variables: IMAGE: ubuntu-21.10 +ubuntu22-04-cmake-test: + <<: *linux_test_definition + before_script: + - export build_system="cmake" + - python3 gen_version.py --output GRAPHVIZ_VERSION + needs: + - job: "ubuntu22-04-cmake-build" + artifacts: true + tags: + - linux + variables: + IMAGE: ubuntu-22.04 + ubuntu21.10-cmake-ASan-test-including-ctest: <<: *linux_test_definition_including_ctest before_script: @@ -1239,6 +1293,11 @@ docker_build_ubuntu-21.10: variables: IMAGE: ubuntu-21.10 +docker_build_ubuntu-22.04: + <<: *docker_build_definition + variables: + IMAGE: ubuntu-22.04 + docker_push_centos7: <<: *docker_push_definition variables: @@ -1281,6 +1340,13 @@ docker_push_ubuntu-21.10: needs: - docker_build_ubuntu-21.10 +docker_push_ubuntu-22.04: + <<: *docker_push_definition + variables: + IMAGE: ubuntu-22.04 + needs: + - docker_build_ubuntu-22.04 + lint_clang_format: image: "$CI_REGISTRY_IMAGE/ubuntu-21.10:$CI_COMMIT_SHA" stage: test diff --git a/ci/ubuntu-22.04/Dockerfile b/ci/ubuntu-22.04/Dockerfile new file mode 100644 index 000000000..78a0c474d --- /dev/null +++ b/ci/ubuntu-22.04/Dockerfile @@ -0,0 +1,96 @@ +FROM ubuntu:22.04 + +ARG DEBIAN_FRONTEND=noninteractive + +COPY requirements.txt ./requirements.txt +COPY doc/infosrc/requirements.txt ./doc-infosrc-requirements.txt + +RUN apt-get update -y \ +&& apt-get install --no-install-recommends -y \ +# Development tools +build-essential \ +clang-format \ +cmake \ +git \ +pkg-config \ +autoconf \ +bison \ +libtool \ +dh-python \ +flex \ +ksh \ +# Debian build utilities +quilt \ +d-shlibs \ +debhelper \ +fakeroot \ +# Option glut +freeglut3-dev \ +# Option gts +libgts-dev \ +# Option swig +swig \ +# Command smyra +libgtkglext1-dev \ +libglade2-dev \ +# Command gvedit +libqt5gui5 \ +qt5-qmake \ +qtbase5-dev \ +# for libmingle +libann-dev \ +# Plugin library devil +libdevil-dev \ +# Plugin library gd +libgd-dev \ +# Documentation +ghostscript \ +# Plugin library ghostscipt +libgs-dev \ +# Plugin library lasi +liblasi-dev \ +# Plugin library poppler +libpoppler-dev \ +libpoppler-glib-dev \ +# Plugin library rsvg +librsvg2-dev \ +# Plugin library webp +libwebp-dev \ +# Language extension gv_sharp & gv_ruby +ruby \ +# Language extension gv_go +golang-go \ +# Language extension gv_guile +guile-2.2 \ +guile-2.2-dev \ +# Language extension gv_lua +lua5.3 \ +liblua5.3-dev \ +# Language extension gv_ocaml +ocaml \ +# Language extension gv_perl +libperl-dev \ +# Language extension gv_php +php-dev \ +libsodium-dev \ +libargon2-0-dev \ +# Language extension gv_python3 +libpython3-dev \ +# Language extension gv_ruby +ruby-dev \ +# Language extension gv_tcl +tcl-dev \ +# Test utilities +python3-pip \ +python3-setuptools \ +gcovr \ +# Libraries used in test +catch2 \ +libboost-dev \ +libsvgpp-dev \ +# install Python dependencies +&& python3 -m pip install --user --upgrade pip \ +&& python3 -m pip install --user --requirement requirements.txt \ +&& python3 -m pip install --user --requirement doc-infosrc-requirements.txt \ +# Clean up +&& rm -rf /var/lib/apt/lists/* -- 2.40.0