Merge pull request #2756 from jamescowens/update_checkpoint_data #372
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@v3 | |
- name: Install dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: | | |
${{matrix.deps}} | |
ccache | |
libcurl4-openssl-dev | |
libzip-dev | |
ninja-build | |
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@v3 | |
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@v3 | |
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@v3 | |
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=/usr/local/opt/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=/usr/local/opt/berkeley-db@5/include | |
-DBerkeleyDB_CXX_LIBRARY=/usr/local/opt/berkeley-db@5/lib/libdb_cxx.dylib | |
-DSYSTEM_SECP256K1=ON | |
-DSYSTEM_XXD=ON | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
brew install boost ccache ninja ${{matrix.deps}} | |
- name: Configure | |
run: | | |
PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig:${PKG_CONFIG_PATH}" | |
export PKG_CONFIG_PATH | |
pushd src | |
../contrib/nomacro.pl | |
popd | |
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@v3 | |
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@v3 | |
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@v3 | |
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@v3 | |
- 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@v3 | |
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@v3 | |
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@v3 | |
if: always() | |
with: | |
name: testlog-msys-${{matrix.tag}} | |
path: ${{github.workspace}}\build\Testing\Temporary\LastTest.log | |
retention-days: 7 |