diff --git a/.github/workflows/analyzers.yml b/.github/workflows/analyzers.yml index be5e9a13e2..65876593d8 100644 --- a/.github/workflows/analyzers.yml +++ b/.github/workflows/analyzers.yml @@ -4,7 +4,7 @@ on: [ push, pull_request ] jobs: clang_format: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Checkout @@ -24,7 +24,7 @@ jobs: cmake_format: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Checkout @@ -38,7 +38,7 @@ jobs: code_inspector: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository steps: - name: Checkout diff --git a/.github/workflows/build_deploy.yml b/.github/workflows/build_deploy.yml index 24da36bc1e..beecbcf9bf 100644 --- a/.github/workflows/build_deploy.yml +++ b/.github/workflows/build_deploy.yml @@ -15,7 +15,7 @@ env: jobs: prepare_build: name: Prepare Build - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 outputs: ci_tag: ${{ steps.set_vars.outputs.ci_tag }} tag_created: ${{ steps.set_vars.outputs.tag_created }} @@ -78,7 +78,7 @@ jobs: name: Linux [${{ matrix.network }}] needs: prepare_build if: ${{ needs.prepare_build.outputs.tag_created == 'true' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 90 strategy: matrix: @@ -115,7 +115,7 @@ jobs: name: Docker [${{ matrix.network }}] needs: prepare_build if: ${{ needs.prepare_build.outputs.tag_created == 'true' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 90 strategy: matrix: diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 63115c1cc2..ac79a59185 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -27,7 +27,7 @@ env: jobs: changelog_job: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 90 steps: - name: Sets the tag and repo variables (to build) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index cbdeffeeff..a0dab2afbe 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -16,7 +16,7 @@ jobs: env: LCOV: 1 COMPILER: gcc - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 strategy: matrix: TEST_USE_ROCKSDB: [0, 1] @@ -29,7 +29,8 @@ jobs: submodules: "recursive" - name: Fetch Deps run: | - sudo apt-get update -qq && sudo apt-get install -yqq build-essential g++ wget python zlib1g-dev qt5-default \ + sudo apt-get update -qq && sudo apt-get install -yqq build-essential g++ wget python3 zlib1g-dev \ + qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools \ valgrind xorg xvfb xauth xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic ocl-icd-opencl-dev \ git lcov python3-pip wget -O cmake_install.sh https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4-Linux-x86_64.sh @@ -46,7 +47,7 @@ jobs: parallel: true finish: needs: coverage_test - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - uses: coverallsapp/github-action@8cbef1dea373ebce56de0a14c68d6267baa10b44 with: diff --git a/.github/workflows/flamegraphs.yml b/.github/workflows/flamegraphs.yml index a0166fb857..cf156f51b8 100644 --- a/.github/workflows/flamegraphs.yml +++ b/.github/workflows/flamegraphs.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: TEST_NAME: [large_confirmation, large_direct_processing] # slow_test --gtest_filter=flamegraph.[name] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 env: TEST_NAME: ${{ matrix.TEST_NAME }} BACKEND: lmdb diff --git a/.github/workflows/prepare_release.yml b/.github/workflows/prepare_release.yml index 6b0903c6de..0756e81920 100644 --- a/.github/workflows/prepare_release.yml +++ b/.github/workflows/prepare_release.yml @@ -4,7 +4,7 @@ on: jobs: promote_reference: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 5abbb3106e..900b53f878 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,7 +356,7 @@ set(CMAKE_C_STANDARD 11) set(CMAKE_C_STANDARD_REQUIRED ON) # set(CMAKE_C_EXTENSIONS OFF) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) # set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/ci/prepare/linux/prepare-gcc.sh b/ci/prepare/linux/prepare-gcc.sh index d06a2644c3..a32acc2c8a 100755 --- a/ci/prepare/linux/prepare-gcc.sh +++ b/ci/prepare/linux/prepare-gcc.sh @@ -1,2 +1,12 @@ #!/bin/bash -set -euox pipefail \ No newline at end of file +set -euox pipefail + +# Install GCC 13 for C++23 support (std::unreachable, etc.) +apt-get install -yqq software-properties-common +add-apt-repository -y ppa:ubuntu-toolchain-r/test +apt-get update -qq +apt-get install -yqq gcc-13 g++-13 + +# Set GCC 13 as default +update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 +update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100 \ No newline at end of file diff --git a/docker/ci/Dockerfile-base b/docker/ci/Dockerfile-base index bf9f14085d..d29fa51b55 100644 --- a/docker/ci/Dockerfile-base +++ b/docker/ci/Dockerfile-base @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 +FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive diff --git a/docker/ci/Dockerfile-rhel b/docker/ci/Dockerfile-rhel index 5eb6c733ae..caddafa346 100644 --- a/docker/ci/Dockerfile-rhel +++ b/docker/ci/Dockerfile-rhel @@ -6,5 +6,5 @@ RUN yum update -y RUN yum install -y git wget openssl bzip2 RUN yum install -y rpm-build RUN yum install -y glibc-devel glibc-headers make which -RUN yum install -y cmake gcc-toolset-12 +RUN yum install -y cmake gcc-toolset-13 RUN yum install -y python38 diff --git a/docker/node/Dockerfile b/docker/node/Dockerfile index 469aada5f8..29e34fc0d1 100644 --- a/docker/node/Dockerfile +++ b/docker/node/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 AS builder +FROM ubuntu:24.04 AS builder ARG COMPILER=gcc ARG NANO_NETWORK=live @@ -24,7 +24,7 @@ ARG SANITIZER RUN ci/build-node.sh RUN echo ${NANO_NETWORK} >/etc/nano-network -FROM ubuntu:22.04 +FROM ubuntu:24.04 RUN groupadd --gid 1000 nanocurrency && \ useradd --uid 1000 --gid nanocurrency --shell /bin/bash --create-home nanocurrency