diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce9040c..c292018 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,8 +17,8 @@ jobs: matrix: include: - - os: ubuntu-22.04 - cxx: "clang++-15" + - os: ubuntu-24.04 + cxx: "clang++-16" link: "dynamic" optimization: "debug" assert: "debug" @@ -26,16 +26,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Og -fPIE" options: "--enable-isystem" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "clang++-15" + - os: ubuntu-24.04 + cxx: "clang++-16" link: "static" optimization: "size" assert: "ndebug" @@ -43,16 +44,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Os -fPIE" options: "--enable-isystem" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "g++-11" + - os: ubuntu-24.04 + cxx: "g++-12" link: "dynamic" optimization: "size" assert: "ndebug" @@ -60,16 +62,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "--enable-isystem" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "g++-11" + - os: ubuntu-24.04 + cxx: "g++-12" link: "static" optimization: "size" assert: "ndebug" @@ -77,9 +80,10 @@ jobs: detectcpuflags: "detect" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "--enable-isystem" packager: "apt" @@ -94,13 +98,14 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" zmq: "--build-zmq" cc: "clang" flags: "-Os -fPIE -DBOOST_NO_CXX98_FUNCTION_BASE" options: "--enable-isystem" packager: "brew" - packages: "icu4c" + packages: "llvm@16 icu4c" - os: macos-latest cxx: "clang++" @@ -111,13 +116,14 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" zmq: "--build-zmq" cc: "clang" flags: "-Os -fvisibility=hidden -fPIE -DBOOST_NO_CXX98_FUNCTION_BASE" options: "--enable-isystem" packager: "brew" - packages: "icu4c" + packages: "llvm@16 icu4c" runs-on: ${{ matrix.os }} @@ -147,6 +153,9 @@ jobs: if: ${{ matrix.packager == 'brew' }} run: | brew install autoconf automake libtool ${{ matrix.packages }} + if [[ -n ${{ matrix.llvm }} ]]; then + echo "PATH=/opt/homebrew/opt/${{ matrix.llvm }}/bin:$PATH" >> $GITHUB_ENV + fi - name: Determine CPU flags shell: bash @@ -218,9 +227,9 @@ jobs: - name: Coveralls Calculation if: ${{ matrix.coverage == 'cov' }} run: | - lcov --directory . --capture --output-file coverage.info - lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file coverage.info - lcov --list coverage.info + lcov --directory . --capture --ignore-errors version --output-file coverage.info + lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file --ignore-errors version coverage.info + lcov --list --ignore-errors version coverage.info - name: Coveralls.io Upload if: ${{ matrix.coverage == 'cov' }} @@ -286,8 +295,8 @@ jobs: matrix: include: - - os: ubuntu-22.04 - cxx: "clang++-15" + - os: ubuntu-24.04 + cxx: "clang++-16" link: "dynamic" optimization: "debug" assert: "debug" @@ -295,16 +304,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Og -fPIE" options: "" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "clang++-15" + - os: ubuntu-24.04 + cxx: "clang++-16" link: "static" optimization: "size" assert: "ndebug" @@ -312,16 +322,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Os -fPIE" options: "" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "g++-11" + - os: ubuntu-24.04 + cxx: "g++-12" link: "dynamic" optimization: "size" assert: "ndebug" @@ -329,16 +340,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "" packager: "apt" packages: "" - - os: ubuntu-22.04 - cxx: "g++-11" + - os: ubuntu-24.04 + cxx: "g++-12" link: "static" optimization: "size" assert: "ndebug" @@ -346,9 +358,10 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "" packager: "apt" @@ -363,13 +376,14 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" zmq: "--build-zmq" cc: "clang" flags: "-Os -fPIE -DBOOST_NO_CXX98_FUNCTION_BASE" options: "" packager: "brew" - packages: "icu4c" + packages: "llvm@16 icu4c" - os: macos-latest cxx: "clang++" @@ -380,13 +394,14 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" zmq: "--build-zmq" cc: "clang" flags: "-Os -fvisibility=hidden -fPIE -DBOOST_NO_CXX98_FUNCTION_BASE" options: "" packager: "brew" - packages: "icu4c" + packages: "llvm@16 icu4c" runs-on: ${{ matrix.os }} @@ -416,6 +431,9 @@ jobs: if: ${{ matrix.packager == 'brew' }} run: | brew install autoconf automake libtool ${{ matrix.packages }} + if [[ -n ${{ matrix.llvm }} ]]; then + echo "PATH=/opt/homebrew/opt/${{ matrix.llvm }}/bin:$PATH" >> $GITHUB_ENV + fi - name: Determine CPU flags shell: bash @@ -490,9 +508,9 @@ jobs: - name: Coveralls Calculation if: ${{ matrix.coverage == 'cov' }} run: | - lcov --directory . --capture --output-file coverage.info - lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file coverage.info - lcov --list coverage.info + lcov --directory . --capture --ignore-errors version --output-file coverage.info + lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file --ignore-errors version coverage.info + lcov --list --ignore-errors version coverage.info - name: Coveralls.io Upload if: ${{ matrix.coverage == 'cov' }} @@ -568,9 +586,9 @@ jobs: matrix: include: - - os: ubuntu-22.04 + - os: ubuntu-24.04 preset: "nix-gnu-debug-shared" - cxx: "clang++-15" + cxx: "clang++-16" link: "dynamic" optimization: "debug" assert: "debug" @@ -578,17 +596,18 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Og -fPIE" options: "" packager: "apt" packages: "" - - os: ubuntu-22.04 + - os: ubuntu-24.04 preset: "nix-gnu-release-static" - cxx: "clang++-15" + cxx: "clang++-16" link: "static" optimization: "size" assert: "ndebug" @@ -596,17 +615,18 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "clang-15" + cc: "clang-16" flags: "-Os -fPIE" options: "" packager: "apt" packages: "" - - os: ubuntu-22.04 + - os: ubuntu-24.04 preset: "nix-gnu-release-shared" - cxx: "g++-11" + cxx: "g++-12" link: "dynamic" optimization: "size" assert: "ndebug" @@ -614,9 +634,10 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" zmq: "--build-zmq" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "" packager: "apt" @@ -650,6 +671,9 @@ jobs: if: ${{ matrix.packager == 'brew' }} run: | brew install autoconf automake libtool ${{ matrix.packages }} + if [[ -n ${{ matrix.llvm }} ]]; then + echo "PATH=/opt/homebrew/opt/${{ matrix.llvm }}/bin:$PATH" >> $GITHUB_ENV + fi - name: Determine CPU flags shell: bash @@ -725,9 +749,9 @@ jobs: - name: Coveralls Calculation if: ${{ matrix.coverage == 'cov' }} run: | - lcov --directory . --capture --output-file coverage.info - lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file coverage.info - lcov --list coverage.info + lcov --directory . --capture --ignore-errors version --output-file coverage.info + lcov --remove coverage.info "/usr/*" "${{ env.LIBBITCOIN_SRC_PATH }}prefix/*" "${{ github.workspace }}/examples/*" "${{ github.workspace }}/test/*" --output-file --ignore-errors version coverage.info + lcov --list --ignore-errors version coverage.info - name: Coveralls.io Upload if: ${{ matrix.coverage == 'cov' }}