diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f88bf370..2e523c83 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,17 +17,6 @@ jobs: matrix: include: - - image: macos-latest - config: "release" - link: "dynamic" - cc: "clang" - cxx: "clang++" - flags: "" - coverage: "" - boost: "--build-boost" - secp256k1: "--build-secp256k1" - options: "--enable-isystem" - - image: macos-latest config: "release" link: "static" @@ -42,17 +31,18 @@ jobs: - image: ubuntu-24.04 config: "debug" link: "dynamic" - cc: "clang-18" - cxx: "clang++-18" + cc: "clang-19" + cxx: "clang++-19" flags: "" coverage: "" + package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" options: "--enable-isystem" - image: ubuntu-24.04 config: "release" - link: "static" + link: "dynamic" cc: "clang-18" cxx: "clang++-18" flags: "" @@ -62,23 +52,24 @@ jobs: options: "--enable-isystem" - image: ubuntu-24.04 - config: "release" - link: "dynamic" - cc: "gcc-12" - cxx: "g++-12" - flags: "" - coverage: "" + config: "debug" + link: "static" + cc: "gcc-13" + cxx: "g++-13" + flags: "--coverage -fprofile-update=atomic" + coverage: "lcov" boost: "--build-boost" secp256k1: "--build-secp256k1" options: "--enable-isystem" - image: ubuntu-24.04 - config: "debug" + config: "release" link: "static" - cc: "gcc" - cxx: "g++" - flags: "--coverage -fprofile-update=atomic" - coverage: "lcov" + cc: "gcc-15" + cxx: "g++-15" + flags: "" + coverage: "" + package: "g++-15 gcc-15" boost: "--build-boost" secp256k1: "--build-secp256k1" options: "--enable-isystem" @@ -137,6 +128,13 @@ jobs: shell: bash run: | sudo apt-get update + if [[ "${{ matrix.package }}" == *"g++-15"* ]] || + [[ "${{ matrix.package }}" == *"gcc-15"* ]] || + [[ "${{ matrix.package }}" == *"g++-16"* ]] || + [[ "${{ matrix.package }}" == *"gcc-16"* ]]; then + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt-get update + fi sudo apt-get install git build-essential autoconf automake libtool pkg-config ${{ matrix.package || '' }} if [[ "${{ matrix.coverage }}" == "lcov" ]]; then sudo apt-get install lcov @@ -249,32 +247,10 @@ jobs: matrix: include: - image: macos-latest - config: "release" + config: "debug" link: "dynamic" cc: "clang" cxx: "clang++" - flags: "-DNDEBUG" - coverage: "" - boost: "--build-boost" - secp256k1: "--build-secp256k1" - options: "--verbose" - - - image: macos-latest - config: "release" - link: "static" - cc: "clang" - cxx: "clang++" - flags: "" - coverage: "" - boost: "--build-boost" - secp256k1: "--build-secp256k1" - options: "--verbose" - - - image: ubuntu-24.04 - config: "debug" - link: "dynamic" - cc: "clang-18" - cxx: "clang++-18" flags: "" coverage: "" boost: "--build-boost" @@ -284,10 +260,11 @@ jobs: - image: ubuntu-24.04 config: "release" link: "static" - cc: "clang-18" - cxx: "clang++-18" + cc: "clang-19" + cxx: "clang++-19" flags: "" coverage: "" + package: "clang-19 clang++-19" boost: "--build-boost" secp256k1: "--build-secp256k1" options: "" @@ -306,14 +283,26 @@ jobs: - image: ubuntu-24.04 config: "debug" link: "static" - cc: "gcc" - cxx: "g++" + cc: "gcc-14" + cxx: "g++-14" flags: "" coverage: "" boost: "--build-boost" secp256k1: "--build-secp256k1" options: "" + - image: ubuntu-24.04 + config: "debug" + link: "dynamic" + cc: "gcc-16" + cxx: "g++-16" + flags: "" + coverage: "" + package: "g++-16 gcc-16" + boost: "--build-boost" + secp256k1: "--build-secp256k1" + options: "" + runs-on: ${{ matrix.image }} env: @@ -368,6 +357,13 @@ jobs: shell: bash run: | sudo apt-get update + if [[ "${{ matrix.package }}" == *"g++-15"* ]] || + [[ "${{ matrix.package }}" == *"gcc-15"* ]] || + [[ "${{ matrix.package }}" == *"g++-16"* ]] || + [[ "${{ matrix.package }}" == *"gcc-16"* ]]; then + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt-get update + fi sudo apt-get install git build-essential autoconf automake libtool pkg-config ${{ matrix.package || '' }} if [[ "${{ matrix.coverage }}" == "lcov" ]]; then sudo apt-get install lcov @@ -480,7 +476,7 @@ jobs: matrix: include: - image: ubuntu-24.04 - preset: "nix-gnu-debug-shared" + preset: "nix-gnu-release-shared" cc: "clang-18" cxx: "clang++-18" flags: "" @@ -491,16 +487,6 @@ jobs: - image: ubuntu-24.04 preset: "nix-gnu-release-static" - cc: "clang-18" - cxx: "clang++-18" - flags: "" - coverage: "" - boost: "--build-boost" - secp256k1: "--build-secp256k1" - options: "" - - - image: ubuntu-24.04 - preset: "nix-gnu-release-shared" cc: "gcc-12" cxx: "g++-12" flags: "" @@ -563,6 +549,13 @@ jobs: shell: bash run: | sudo apt-get update + if [[ "${{ matrix.package }}" == *"g++-15"* ]] || + [[ "${{ matrix.package }}" == *"gcc-15"* ]] || + [[ "${{ matrix.package }}" == *"g++-16"* ]] || + [[ "${{ matrix.package }}" == *"gcc-16"* ]]; then + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y + sudo apt-get update + fi sudo apt-get install git build-essential autoconf automake libtool pkg-config ${{ matrix.package || '' }} if [[ "${{ matrix.coverage }}" == "lcov" ]]; then sudo apt-get install lcov @@ -669,25 +662,14 @@ jobs: matrix: include: - - image: windows-latest - configuration: "StaticRelease" - platform: "x64" - version: "vs2022" - tests: "*" - - image: windows-latest configuration: "StaticDebug" platform: "x64" version: "vs2022" tests: "*" - - image: windows-2025-vs2026 - configuration: "StaticRelease" - platform: "x64" - version: "vs2026" - tests: "*" - image: windows-2025-vs2026 - configuration: "StaticDebug" + configuration: "StaticRelease" platform: "x64" version: "vs2026" tests: "*" diff --git a/builds/msvc/build-msvc.cmd b/builds/msvc/build-msvc.cmd index 8c6450b4..452ce3e6 100644 --- a/builds/msvc/build-msvc.cmd +++ b/builds/msvc/build-msvc.cmd @@ -509,8 +509,8 @@ if "!libbitcoin_node_TAG!" == "" ( if "!CD_MODE!" == "-f" ( call :msg_warn "Reinitializing '%CD_DIRECTORY%'..." rmdir /S /Q "!CD_DIRECTORY!" - if %ERRORLEVEL% neq 0 ( - exit /b %ERRORLEVEL% + if !ERRORLEVEL! neq 0 ( + exit /b !ERRORLEVEL! ) mkdir "!CD_DIRECTORY!" @@ -520,40 +520,40 @@ if "!libbitcoin_node_TAG!" == "" ( ) else ( call :msg "Initializing '!CD_DIRECTORY!'..." ) - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :create_directory_force call :create_directory "%~1" -f - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :pop_directory call :msg_verbose "*** move pre: '!CD!'" popd - if %ERRORLEVEL% neq 0 ( - exit /b %ERRORLEVEL% + if !ERRORLEVEL! neq 0 ( + exit /b !ERRORLEVEL! ) call :msg_verbose "*** move post: '!CD!'" - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :push_directory call :msg_verbose "*** move pre: '!CD!'" pushd %1 - if %ERRORLEVEL% neq 0 ( - exit /b %ERRORLEVEL% + if !ERRORLEVEL! neq 0 ( + exit /b !ERRORLEVEL! ) call :msg_verbose "*** move post: '!CD!'" - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :remove_directory_force call :msg_verbose "*** removing: '%~1'" rmdir /S /Q "%~1" - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_heading call :msg "***************************************************************************" call :msg "%~1" call :msg "***************************************************************************" - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg if "%~1" == "" ( @@ -561,26 +561,26 @@ if "!libbitcoin_node_TAG!" == "" ( ) else ( echo %~1 ) - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_empty echo. - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_verbose if "!DISPLAY_VERBOSE!" == "yes" ( echo %~1 ) - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_success echo %~1 - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_warn echo %~1 - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL! :msg_error echo %~1 - exit /b %ERRORLEVEL% + exit /b !ERRORLEVEL!