From 1b519c4f45c03f338eb49457697c20204cd53823 Mon Sep 17 00:00:00 2001 From: AlexandreSinger Date: Tue, 28 May 2024 10:53:34 -0400 Subject: [PATCH] [CI] Added GCC-13 as a Compatability Test Ubuntu 24.04 uses GCC-13 as its default GCC version. The CI should ensure that VTR builds for this version of GCC. Also added the version of Clang that would come with Ubuntu 24.04 Versions of tools were found from here: https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md --- .github/scripts/install_noble_dependencies.sh | 67 +++++++++++++++++++ .github/workflows/test.yml | 34 +++++++++- 2 files changed, 98 insertions(+), 3 deletions(-) create mode 100755 .github/scripts/install_noble_dependencies.sh diff --git a/.github/scripts/install_noble_dependencies.sh b/.github/scripts/install_noble_dependencies.sh new file mode 100755 index 00000000000..98e42720dba --- /dev/null +++ b/.github/scripts/install_noble_dependencies.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +sudo apt update + +sudo apt install -y \ + autoconf \ + automake \ + bash \ + bison \ + binutils \ + binutils-gold \ + build-essential \ + capnproto \ + exuberant-ctags \ + curl \ + doxygen \ + flex \ + fontconfig \ + gdb \ + git \ + gperf \ + libcairo2-dev \ + libcapnp-dev \ + libgtk-3-dev \ + libevent-dev \ + libfontconfig1-dev \ + liblist-moreutils-perl \ + libncurses5-dev \ + libx11-dev \ + libxft-dev \ + libxml2-utils \ + libxml++2.6-dev \ + libreadline-dev \ + tcllib \ + tcl8.6-dev \ + libffi-dev \ + perl \ + pkg-config \ + texinfo \ + time \ + valgrind \ + zip \ + qtbase5-dev \ + uuid-dev \ + default-jdk \ + g++-9 \ + gcc-9 \ + g++-10 \ + gcc-10 \ + g++-11 \ + gcc-11 \ + g++-12 \ + gcc-12 \ + g++-13 \ + gcc-13 \ + clang-14 \ + clang-18 \ + clang-format-14 \ + libtbb-dev + +pip install -r requirements.txt + +git clone https://github.com/capnproto/capnproto-java.git $GITHUB_WORKSPACE/env/capnproto-java +pushd $GITHUB_WORKSPACE/env/capnproto-java +make +sudo make install +popd diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e79ca152aca..bb7adbe09c0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -409,9 +409,9 @@ jobs: matrix: include: - { name: 'GCC 9 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-9 && CXX=g++-9', } - - { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', } - - { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', } - - { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', } + - { name: 'GCC 10 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-10 && CXX=g++-10', } + - { name: 'GCC 11 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-11 && CXX=g++-11', } + - { name: 'GCC 12 (Ubuntu Jammy - 22.04)', eval: 'CC=gcc-12 && CXX=g++-12', } - { name: 'Clang 11 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-11 && CXX=clang++-11', } - { name: 'Clang 12 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-12 && CXX=clang++-12', } - { name: 'Clang 13 (Ubuntu Jammy - 22.04)', eval: 'CC=clang-13 && CXX=clang++-13', } @@ -438,6 +438,34 @@ jobs: export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" ./.github/scripts/build.sh + FutureCompatibility: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + include: + - { name: 'GCC 13 (Ubuntu Noble - 24.04)', eval: 'CC=gcc-13 && CXX=g++-13', } + - { name: 'Clang 18 (Ubuntu Noble - 24.04)', eval: 'CC=clang-18 && CXX=clang++-18', } + name: 'B: ${{ matrix.name }}' + steps: + - uses: actions/setup-python@v5 + with: + python-version: 3.12.3 + - uses: actions/checkout@v4 + with: + submodules: 'true' + - run: ./.github/scripts/install_noble_dependencies.sh + + - uses: hendrikmuhs/ccache-action@v1.2 + + - name: Test + env: + CMAKE_PARAMS: "-DVTR_ASSERT_LEVEL=3" + MATRIX_EVAL: ${{ matrix.eval }} + BUILD_TYPE: release + run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + ./.github/scripts/build.sh Coverity: name: 'Coverity Scan'