Skip to content

Bitcoin Core CI

Bitcoin Core CI #278

Workflow file for this run

# Copyright (c) 2023 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
name: bitcoin-core-ci
run-name: Bitcoin Core CI
# See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore.
on: [pull_request, push]
env:
TEST_RUNNER_TIMEOUT_FACTOR: 40
jobs:
macos-native:
name: macOS 13 native, x86_64 [no depends, sqlite only, gui]
# See: https://github.com/actions/runner-images#available-images.
runs-on: macos-13
env:
CCACHE_MAXSIZE: '400M'
MAKEJOBS: '-j4'
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Homebrew packages
run: brew install automake boost pkg-config miniupnpc libnatpmp zeromq qt@5 qrencode ccache
- name: Check system and tools
run: |
echo "Number of CPUs: $(sysctl -n hw.logicalcpu)"
top -l 1 -s 0 | awk ' /PhysMem/ {print}'
echo "Free disk space:"
df -h
echo
clang --version
echo
ccache --version | head -n 2
- name: Ccache cache
uses: actions/cache@v3
with:
path: ~/Library/Caches/ccache
key: ${{ runner.os }}-${{ runner.arch }}-ccache-cache-${{ github.run_id }}
restore-keys: ${{ runner.os }}-${{ runner.arch }}-ccache-cache
- name: Configure
run: |
./autogen.sh
./configure --prefix "${GITHUB_WORKSPACE}/install" --disable-dependency-tracking --enable-werror --enable-external-signer --with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports
- name: Build
run: |
ccache --zero-stats
make $MAKEJOBS
- name: Ccache stats
run: |
ccache --show-stats --verbose
- name: Check
run: make check $MAKEJOBS
- name: Install
run: make install
- name: Run functional tests
run: python test/functional/test_runner.py --ci "$MAKEJOBS" --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor="$TEST_RUNNER_TIMEOUT_FACTOR" --quiet
- name: Fetch fuzz seed corpus
run: |
git clone --depth=1 https://github.com/bitcoin-core/qa-assets
cd qa-assets
echo "Using qa-assets repo from commit ..."
git log -1
- name: Run fuzz test targets
run: test/fuzz/test_runner.py $MAKEJOBS -l DEBUG "${GITHUB_WORKSPACE}/qa-assets/fuzz_seed_corpus" --exclude banman --empty_min_time=60