Merge pull request #2773 from jamescowens/enhance_registry_clear_para… #418
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake CI | |
on: | |
- push | |
- pull_request | |
- workflow_dispatch | |
jobs: | |
test-linux: | |
runs-on: ubuntu-latest | |
env: | |
CCACHE_DIR: ${{github.workspace}}/ccache | |
CCACHE_MAXSIZE: 400M | |
CCACHE_COMPILERCHECK: content | |
strategy: | |
matrix: | |
tag: | |
- minimal | |
- no-asm | |
- gui-full | |
- system-libs | |
include: | |
- tag: no-asm | |
deps: null | |
options: -DENABLE_PIE=ON -DUSE_ASM=OFF | |
- tag: gui-full | |
deps: >- | |
libminiupnpc-dev | |
libqrencode-dev | |
qtbase5-dev | |
qttools5-dev | |
options: >- | |
-DENABLE_GUI=ON | |
-DENABLE_QRENCODE=ON | |
-DENABLE_UPNP=ON | |
-DUSE_DBUS=ON | |
- tag: system-libs | |
deps: >- | |
libdb5.3++-dev | |
libleveldb-dev | |
libsnappy-dev | |
libsecp256k1-dev | |
libunivalue-dev | |
xxd | |
options: >- | |
-DSYSTEM_BDB=ON | |
-DSYSTEM_LEVELDB=ON | |
-DSYSTEM_UNIVALUE=ON | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: >- | |
${{matrix.deps}} | |
ccache | |
cmake | |
libcurl4-openssl-dev | |
libssl-dev | |
libzip-dev | |
ninja-build | |
pkgconf | |
zipcmp | |
zipmerge | |
ziptool | |
version: ${{matrix.tag}} | |
- name: Install Boost dependencies | |
run: sudo apt-get install -y --no-install-recommends | |
libboost-dev | |
libboost-date-time-dev | |
libboost-exception-dev | |
libboost-filesystem-dev | |
libboost-iostreams-dev | |
libboost-serialization-dev | |
libboost-test-dev | |
libboost-thread-dev | |
- name: Configure | |
run: cmake | |
-B ${{github.workspace}}/build -G Ninja | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
${{matrix.options}} | |
-DENABLE_TESTS=ON | |
- name: Restore cache | |
uses: actions/cache/restore@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-linux-${{matrix.tag}}-${{github.run_id}} | |
restore-keys: ccache-linux-${{matrix.tag}}- | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build -v -j $(nproc) | |
- name: Save cache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-linux-${{matrix.tag}}-${{github.run_id}} | |
- name: Run tests | |
run: ctest --test-dir ${{github.workspace}}/build -j $(nproc) | |
- name: Upload test logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: testlog-linux-${{matrix.tag}} | |
path: ${{github.workspace}}/build/Testing/Temporary/LastTest.log | |
retention-days: 7 | |
test-macos: | |
runs-on: macos-latest | |
env: | |
CCACHE_DIR: ${{github.workspace}}/ccache | |
CCACHE_MAXSIZE: 400M | |
CCACHE_COMPILERCHECK: content | |
strategy: | |
matrix: | |
tag: | |
- minimal | |
- no-asm | |
- gui-full | |
- system-libs | |
include: | |
- tag: no-asm | |
deps: null | |
options: -DENABLE_PIE=ON -DUSE_ASM=OFF | |
- tag: gui-full | |
deps: >- | |
miniupnpc | |
qrencode | |
qt@5 | |
options: >- | |
-DENABLE_GUI=ON | |
-DQt5_DIR=$(brew --prefix qt@5)/lib/cmake/Qt5 | |
-DENABLE_QRENCODE=ON | |
-DENABLE_UPNP=ON | |
- tag: system-libs | |
deps: >- | |
berkeley-db@5 | |
secp256k1 | |
vim | |
options: >- | |
-DSYSTEM_BDB=ON | |
-DBerkeleyDB_INCLUDE_DIR=$(brew --prefix berkeley-db@5)/include | |
-DBerkeleyDB_CXX_LIBRARY=$(brew --prefix berkeley-db@5)/lib/libdb_cxx.dylib | |
-DSYSTEM_SECP256K1=ON | |
-DSYSTEM_XXD=ON | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: brew install | |
${{matrix.deps}} | |
boost | |
ccache | |
libzip | |
ninja | |
openssl@3 | |
perl | |
pkg-config | |
- name: Prepare source | |
run: | | |
pushd src | |
../contrib/nomacro.pl | |
popd | |
- name: Configure | |
run: cmake | |
-B ${{github.workspace}}/build -G Ninja | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
${{matrix.options}} | |
-DENABLE_TESTS=ON | |
- name: Restore cache | |
uses: actions/cache/restore@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-macos-${{matrix.tag}}-${{github.run_id}} | |
restore-keys: ccache-macos-${{matrix.tag}}- | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build -v -j $(sysctl -n hw.logicalcpu) | |
- name: Save cache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-macos-${{matrix.tag}}-${{github.run_id}} | |
- name: Run tests | |
run: ctest --test-dir ${{github.workspace}}/build -j $(sysctl -n hw.logicalcpu) | |
- name: Upload test logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: testlog-macos-${{matrix.tag}} | |
path: ${{github.workspace}}/build/Testing/Temporary/LastTest.log | |
retention-days: 7 | |
test-msys2: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
env: | |
CCACHE_DIR: ${{github.workspace}}\ccache | |
CCACHE_MAXSIZE: 400M | |
CCACHE_COMPILERCHECK: content | |
strategy: | |
matrix: | |
tag: | |
- minimal | |
- no-asm | |
- gui-full | |
include: | |
- tag: no-asm | |
deps: null | |
options: -DUSE_ASM=OFF | |
- tag: gui-full | |
deps: >- | |
miniupnpc:p | |
qrencode:p | |
qt5-base:p | |
qt5-tools:p | |
options: >- | |
-DENABLE_GUI=ON | |
-DENABLE_QRENCODE=ON | |
-DENABLE_UPNP=ON | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
install: >- | |
make | |
ninja | |
pacboy: >- | |
${{matrix.deps}} | |
boost:p | |
ccache:p | |
cmake:p | |
curl:p | |
libzip:p | |
openssl:p | |
toolchain:p | |
- name: Configure | |
run: cmake | |
-B ./build -G Ninja | |
-DCMAKE_C_COMPILER_LAUNCHER=ccache | |
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache | |
${{matrix.options}} | |
-DBUILD_SHARED_LIBS=OFF -DENABLE_TESTS=ON | |
- name: Restore cache | |
uses: actions/cache/restore@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-msys2-${{matrix.tag}}-${{github.run_id}} | |
restore-keys: ccache-msys2-${{matrix.tag}}- | |
- name: Build | |
run: cmake --build ./build -v -j $NUMBER_OF_PROCESSORS | |
- name: Save cache | |
uses: actions/cache/save@v4 | |
if: always() | |
with: | |
path: ${{env.CCACHE_DIR}} | |
key: ccache-msys2-${{matrix.tag}}-${{github.run_id}} | |
- name: Run tests | |
run: ctest --test-dir ./build -j $NUMBER_OF_PROCESSORS | |
- name: Upload test logs | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: testlog-msys-${{matrix.tag}} | |
path: ${{github.workspace}}\build\Testing\Temporary\LastTest.log | |
retention-days: 7 |