Skip to content

scraper, project: Implement automated greylisting (tracking PR for WIP) #435

scraper, project: Implement automated greylisting (tracking PR for WIP)

scraper, project: Implement automated greylisting (tracking PR for WIP) #435

Workflow file for this run

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