From 960a2cf1245f3db4227fe719ae7aefa2029972f3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 16 Nov 2022 11:50:46 -0500 Subject: ci: update Linux image to Fedora 37 --- .gitlab/ci/docker/fedora36/Dockerfile | 33 ------ .../docker/fedora36/install_clang_tidy_headers.sh | 18 --- .gitlab/ci/docker/fedora36/install_deps.sh | 132 --------------------- .gitlab/ci/docker/fedora36/install_iwyu.sh | 44 ------- .gitlab/ci/docker/fedora36/install_rvm.sh | 19 --- .gitlab/ci/docker/fedora37/Dockerfile | 33 ++++++ .../docker/fedora37/install_clang_tidy_headers.sh | 18 +++ .gitlab/ci/docker/fedora37/install_deps.sh | 132 +++++++++++++++++++++ .gitlab/ci/docker/fedora37/install_iwyu.sh | 44 +++++++ .gitlab/ci/docker/fedora37/install_rvm.sh | 19 +++ 10 files changed, 246 insertions(+), 246 deletions(-) delete mode 100644 .gitlab/ci/docker/fedora36/Dockerfile delete mode 100755 .gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh delete mode 100755 .gitlab/ci/docker/fedora36/install_deps.sh delete mode 100755 .gitlab/ci/docker/fedora36/install_iwyu.sh delete mode 100755 .gitlab/ci/docker/fedora36/install_rvm.sh create mode 100644 .gitlab/ci/docker/fedora37/Dockerfile create mode 100755 .gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh create mode 100755 .gitlab/ci/docker/fedora37/install_deps.sh create mode 100755 .gitlab/ci/docker/fedora37/install_iwyu.sh create mode 100755 .gitlab/ci/docker/fedora37/install_rvm.sh diff --git a/.gitlab/ci/docker/fedora36/Dockerfile b/.gitlab/ci/docker/fedora36/Dockerfile deleted file mode 100644 index ea42561..0000000 --- a/.gitlab/ci/docker/fedora36/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM fedora:36 as rvm-build -MAINTAINER Ben Boeckel - -COPY install_rvm.sh /root/install_rvm.sh -RUN sh /root/install_rvm.sh - -FROM fedora:36 AS clang-tidy-headers -MAINTAINER Kyle Edwards - -COPY install_clang_tidy_headers.sh /root/install_clang_tidy_headers.sh -RUN sh /root/install_clang_tidy_headers.sh - -FROM fedora:36 AS iwyu -MAINTAINER Kyle Edwards - -COPY install_iwyu.sh /root/install_iwyu.sh -RUN sh /root/install_iwyu.sh - -FROM fedora:36 -MAINTAINER Ben Boeckel - -COPY install_deps.sh /root/install_deps.sh -RUN sh /root/install_deps.sh - -COPY --from=rvm-build /root/rvm.tar /root/rvm.tar -RUN tar -C /usr/local -xf /root/rvm.tar \ - && rm /root/rvm.tar -COPY --from=clang-tidy-headers /root/clang-tidy-headers.tar /root/clang-tidy-headers.tar -RUN tar -C /usr/include -xf /root/clang-tidy-headers.tar \ - && rm /root/clang-tidy-headers.tar -COPY --from=iwyu /root/iwyu.tar /root/iwyu.tar -RUN tar -C / -xf /root/iwyu.tar \ - && rm /root/iwyu.tar diff --git a/.gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh b/.gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh deleted file mode 100755 index b9883f4..0000000 --- a/.gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -set -e - -# Packages for building the clang-tidy plugin. -# TODO: Upstream this as a proper Fedora package. -dnf install --setopt=install_weak_deps=False -y \ - 'dnf-command(download)' \ - rpm-build \ - python3-devel \ - clang-tools-extra -clang_source_rpm=$(rpm -q --queryformat '%{SOURCERPM}' clang-tools-extra) -clang_version=$(rpm -q --queryformat '%{VERSION}' clang-tools-extra) -dnf download --source -y clang -rpm -i "$clang_source_rpm" -rpmbuild -bp /root/rpmbuild/SPECS/clang.spec -cd "/root/rpmbuild/BUILD/clang-tools-extra-$clang_version.src" -find clang-tidy -name '*.h' | tar -cf /root/clang-tidy-headers.tar -T - diff --git a/.gitlab/ci/docker/fedora36/install_deps.sh b/.gitlab/ci/docker/fedora36/install_deps.sh deleted file mode 100755 index f117888..0000000 --- a/.gitlab/ci/docker/fedora36/install_deps.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/sh - -set -e - -# Install build requirements. -dnf install --setopt=install_weak_deps=False -y \ - ncurses-devel \ - openssl-devel \ - qt5-qtbase-devel \ - qt6-qtbase-devel - -# Install development tools. -dnf install --setopt=install_weak_deps=False -y \ - clang-tools-extra \ - compiler-rt \ - gcc-c++ \ - git-core \ - make - -# Install optional external build dependencies. -dnf install --setopt=install_weak_deps=False -y \ - bzip2-devel \ - expat-devel \ - jsoncpp-devel \ - libarchive-devel \ - libcurl-devel \ - libuv-devel \ - libuv-devel \ - libzstd-devel \ - rhash-devel \ - xz-devel \ - zlib-devel - -# Install documentation tools. -dnf install --setopt=install_weak_deps=False -y \ - python3-sphinx \ - texinfo \ - qt5-qttools-devel \ - qt6-qttools-devel - -# Install lint tools. -dnf install --setopt=install_weak_deps=False -y \ - clang-analyzer \ - codespell - -# Tools needed for the test suite. -dnf install --setopt=install_weak_deps=False -y \ - findutils \ - file \ - jq \ - which - -# Packages needed to test CTest. -dnf install --setopt=install_weak_deps=False -y \ - breezy \ - subversion \ - mercurial - -# Packages needed to test CPack. -dnf install --setopt=install_weak_deps=False -y \ - rpm-build - -# Packages needed to test find modules. -dnf install --setopt=install_weak_deps=False -y \ - alsa-lib-devel \ - blas-devel \ - boost-devel boost-python3-devel \ - bzip2-devel \ - cups-devel \ - DevIL-devel \ - doxygen \ - expat-devel \ - fontconfig-devel \ - freeglut-devel \ - freetype-devel \ - gdal-devel \ - gettext \ - giflib-devel \ - glew-devel \ - gmock \ - gnutls-devel \ - grpc-devel grpc-plugins \ - gsl-devel \ - gtest-devel \ - gtk2-devel \ - java-11-openjdk-devel \ - jsoncpp-devel \ - lapack-devel \ - libarchive-devel \ - libcurl-devel \ - libicu-devel \ - libinput-devel systemd-devel \ - libjpeg-turbo-devel \ - libpng-devel \ - opensp-devel \ - postgresql-server-devel \ - libtiff-devel \ - libuv-devel \ - libxml2-devel \ - libxslt-devel \ - mpich-devel \ - openal-soft-devel \ - openmpi-devel \ - patch \ - perl \ - protobuf-devel protobuf-c-devel protobuf-lite-devel \ - pypy2 pypy2-devel \ - pypy3 pypy3-devel \ - python2 python2-devel \ - python3 python3-devel python3-numpy \ - python3-jsmin python3-jsonschema \ - ruby rubygems ruby-devel \ - SDL-devel \ - sqlite-devel \ - swig \ - unixODBC-devel \ - xalan-c-devel \ - xerces-c-devel \ - xz-devel - -dnf clean all - -# Fedora no longer packages python2 numpy. -curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py -python2 get-pip.py -rm get-pip.py -pip2.7 install numpy - -# Perforce -curl -L -O https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz -tar -C /usr/local/bin -xvzf helix-core-server.tgz -- p4 p4d -rm helix-core-server.tgz diff --git a/.gitlab/ci/docker/fedora36/install_iwyu.sh b/.gitlab/ci/docker/fedora36/install_iwyu.sh deleted file mode 100755 index 714bcc0..0000000 --- a/.gitlab/ci/docker/fedora36/install_iwyu.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -set -e - -# Install development tools. -dnf install --setopt=install_weak_deps=False -y \ - clang-devel \ - llvm-devel \ - zlib-devel \ - g++ \ - cmake \ - ninja-build \ - git - -cd /root -git clone "https://github.com/include-what-you-use/include-what-you-use.git" -cd include-what-you-use -readonly llvm_full_version="$( clang --version | head -n1 | cut -d' ' -f3 )" -readonly llvm_version="$( echo "$llvm_full_version" | cut -d. -f-1 )" -git checkout "clang_$llvm_version" -git apply < + +COPY install_rvm.sh /root/install_rvm.sh +RUN sh /root/install_rvm.sh + +FROM fedora:37 AS clang-tidy-headers +MAINTAINER Kyle Edwards + +COPY install_clang_tidy_headers.sh /root/install_clang_tidy_headers.sh +RUN sh /root/install_clang_tidy_headers.sh + +FROM fedora:37 AS iwyu +MAINTAINER Kyle Edwards + +COPY install_iwyu.sh /root/install_iwyu.sh +RUN sh /root/install_iwyu.sh + +FROM fedora:37 +MAINTAINER Ben Boeckel + +COPY install_deps.sh /root/install_deps.sh +RUN sh /root/install_deps.sh + +COPY --from=rvm-build /root/rvm.tar /root/rvm.tar +RUN tar -C /usr/local -xf /root/rvm.tar \ + && rm /root/rvm.tar +COPY --from=clang-tidy-headers /root/clang-tidy-headers.tar /root/clang-tidy-headers.tar +RUN tar -C /usr/include -xf /root/clang-tidy-headers.tar \ + && rm /root/clang-tidy-headers.tar +COPY --from=iwyu /root/iwyu.tar /root/iwyu.tar +RUN tar -C / -xf /root/iwyu.tar \ + && rm /root/iwyu.tar diff --git a/.gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh b/.gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh new file mode 100755 index 0000000..b9883f4 --- /dev/null +++ b/.gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e + +# Packages for building the clang-tidy plugin. +# TODO: Upstream this as a proper Fedora package. +dnf install --setopt=install_weak_deps=False -y \ + 'dnf-command(download)' \ + rpm-build \ + python3-devel \ + clang-tools-extra +clang_source_rpm=$(rpm -q --queryformat '%{SOURCERPM}' clang-tools-extra) +clang_version=$(rpm -q --queryformat '%{VERSION}' clang-tools-extra) +dnf download --source -y clang +rpm -i "$clang_source_rpm" +rpmbuild -bp /root/rpmbuild/SPECS/clang.spec +cd "/root/rpmbuild/BUILD/clang-tools-extra-$clang_version.src" +find clang-tidy -name '*.h' | tar -cf /root/clang-tidy-headers.tar -T - diff --git a/.gitlab/ci/docker/fedora37/install_deps.sh b/.gitlab/ci/docker/fedora37/install_deps.sh new file mode 100755 index 0000000..f117888 --- /dev/null +++ b/.gitlab/ci/docker/fedora37/install_deps.sh @@ -0,0 +1,132 @@ +#!/bin/sh + +set -e + +# Install build requirements. +dnf install --setopt=install_weak_deps=False -y \ + ncurses-devel \ + openssl-devel \ + qt5-qtbase-devel \ + qt6-qtbase-devel + +# Install development tools. +dnf install --setopt=install_weak_deps=False -y \ + clang-tools-extra \ + compiler-rt \ + gcc-c++ \ + git-core \ + make + +# Install optional external build dependencies. +dnf install --setopt=install_weak_deps=False -y \ + bzip2-devel \ + expat-devel \ + jsoncpp-devel \ + libarchive-devel \ + libcurl-devel \ + libuv-devel \ + libuv-devel \ + libzstd-devel \ + rhash-devel \ + xz-devel \ + zlib-devel + +# Install documentation tools. +dnf install --setopt=install_weak_deps=False -y \ + python3-sphinx \ + texinfo \ + qt5-qttools-devel \ + qt6-qttools-devel + +# Install lint tools. +dnf install --setopt=install_weak_deps=False -y \ + clang-analyzer \ + codespell + +# Tools needed for the test suite. +dnf install --setopt=install_weak_deps=False -y \ + findutils \ + file \ + jq \ + which + +# Packages needed to test CTest. +dnf install --setopt=install_weak_deps=False -y \ + breezy \ + subversion \ + mercurial + +# Packages needed to test CPack. +dnf install --setopt=install_weak_deps=False -y \ + rpm-build + +# Packages needed to test find modules. +dnf install --setopt=install_weak_deps=False -y \ + alsa-lib-devel \ + blas-devel \ + boost-devel boost-python3-devel \ + bzip2-devel \ + cups-devel \ + DevIL-devel \ + doxygen \ + expat-devel \ + fontconfig-devel \ + freeglut-devel \ + freetype-devel \ + gdal-devel \ + gettext \ + giflib-devel \ + glew-devel \ + gmock \ + gnutls-devel \ + grpc-devel grpc-plugins \ + gsl-devel \ + gtest-devel \ + gtk2-devel \ + java-11-openjdk-devel \ + jsoncpp-devel \ + lapack-devel \ + libarchive-devel \ + libcurl-devel \ + libicu-devel \ + libinput-devel systemd-devel \ + libjpeg-turbo-devel \ + libpng-devel \ + opensp-devel \ + postgresql-server-devel \ + libtiff-devel \ + libuv-devel \ + libxml2-devel \ + libxslt-devel \ + mpich-devel \ + openal-soft-devel \ + openmpi-devel \ + patch \ + perl \ + protobuf-devel protobuf-c-devel protobuf-lite-devel \ + pypy2 pypy2-devel \ + pypy3 pypy3-devel \ + python2 python2-devel \ + python3 python3-devel python3-numpy \ + python3-jsmin python3-jsonschema \ + ruby rubygems ruby-devel \ + SDL-devel \ + sqlite-devel \ + swig \ + unixODBC-devel \ + xalan-c-devel \ + xerces-c-devel \ + xz-devel + +dnf clean all + +# Fedora no longer packages python2 numpy. +curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py +python2 get-pip.py +rm get-pip.py +pip2.7 install numpy + +# Perforce +curl -L -O https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz +tar -C /usr/local/bin -xvzf helix-core-server.tgz -- p4 p4d +rm helix-core-server.tgz diff --git a/.gitlab/ci/docker/fedora37/install_iwyu.sh b/.gitlab/ci/docker/fedora37/install_iwyu.sh new file mode 100755 index 0000000..714bcc0 --- /dev/null +++ b/.gitlab/ci/docker/fedora37/install_iwyu.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +set -e + +# Install development tools. +dnf install --setopt=install_weak_deps=False -y \ + clang-devel \ + llvm-devel \ + zlib-devel \ + g++ \ + cmake \ + ninja-build \ + git + +cd /root +git clone "https://github.com/include-what-you-use/include-what-you-use.git" +cd include-what-you-use +readonly llvm_full_version="$( clang --version | head -n1 | cut -d' ' -f3 )" +readonly llvm_version="$( echo "$llvm_full_version" | cut -d. -f-1 )" +git checkout "clang_$llvm_version" +git apply <