diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f16b41a2a..b3cd0cd80 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,15 +26,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -42,15 +43,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -58,15 +60,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -74,8 +77,9 @@ jobs: detectcpuflags: "detect" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -g --coverage -fPIE" options: "--enable-isystem" packager: "apt" @@ -90,12 +94,13 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" 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++" @@ -106,12 +111,13 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" 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 }} @@ -141,6 +147,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 @@ -211,9 +220,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' }} @@ -279,8 +288,8 @@ jobs: matrix: include: - - os: ubuntu-22.04 - cxx: "clang++-15" + - os: ubuntu-24.04 + cxx: "clang++-16" link: "dynamic" optimization: "debug" assert: "debug" @@ -288,15 +297,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -304,15 +314,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -320,15 +331,16 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -336,8 +348,9 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "" packager: "apt" @@ -352,12 +365,13 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" cc: "clang" flags: "-Os -fPIE -DBOOST_NO_CXX98_FUNCTION_BASE" options: "" packager: "brew" - packages: "icu4c" + packages: "llvm@16 icu4c" - os: macos-latest cxx: "clang++" @@ -368,12 +382,13 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "llvm@16" secp256k1: "--build-secp256k1" 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 }} @@ -403,6 +418,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 @@ -476,9 +494,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' }} @@ -554,9 +572,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" @@ -564,16 +582,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -581,16 +600,17 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "--build-icu --with-icu" + llvm: "" secp256k1: "--build-secp256k1" - 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" @@ -598,8 +618,9 @@ jobs: detectcpuflags: "ignore" boost: "--build-boost" icu: "" + llvm: "" secp256k1: "--build-secp256k1" - cc: "gcc-11" + cc: "gcc-12" flags: "-Os -fPIE" options: "" packager: "apt" @@ -633,6 +654,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 @@ -707,9 +731,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' }}