Merge #2915: [Test] [DMNs] Split special transaction validation #3479
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: CI Actions for PIVX | |
on: [push, pull_request] | |
jobs: | |
lint: | |
env: | |
SHELLCHECK_VERSION: v0.7.1 | |
LC_ALL: C | |
runs-on: ubuntu-20.04 | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Initialize Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.8 | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install codespell==2.2.5 | |
pip install flake8==5.0.4 | |
pip install mypy==1.4.1 | |
pip install vulture==2.6 | |
pip install yq | |
curl -sL "https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | tar --xz -xf - --directory /tmp/ | |
- name: Set TRAVIS_BRANCH workaround env variable | |
if: github.event_name == 'pull_request' | |
run: echo "TRAVIS_BRANCH=${{ github.base_ref }}" >> $GITHUB_ENV | |
- name: Lint | |
run: | | |
export PATH="/tmp/shellcheck-${SHELLCHECK_VERSION}:${PATH}" | |
echo $PATH | |
git checkout -qf -B master refs/remotes/origin/master | |
git checkout -qf $GITHUB_SHA | |
test/lint/git-subtree-check.sh src/secp256k1 | |
test/lint/git-subtree-check.sh src/univalue | |
test/lint/git-subtree-check.sh src/leveldb | |
test/lint/git-subtree-check.sh src/crc32c | |
test/lint/git-subtree-check.sh src/chiabls | |
test/lint/git-subtree-check.sh src/immer | |
test/lint/check-doc.py | |
test/lint/logprint-scanner.py | |
test/lint/lint-all.sh | |
if [ "${{ github.event_name }}" = "pull_request" ]; then | |
COMMIT_RANGE="${{ github.base_ref }}..HEAD" | |
test/lint/commit-script-check.sh $COMMIT_RANGE | |
fi | |
cmake: | |
name: CMake-${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
needs: lint | |
continue-on-error: true | |
env: | |
APT_BASE: ccache | |
CCACHE_DIR: ${{ github.workspace }}/.ccache | |
CCACHE_SIZE: 500M | |
CCACHE_COMPRESS: 1 | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Linux | |
os: ubuntu-20.04 | |
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo | |
cc: gcc | |
cxx: g++ | |
- name: Linux-latest | |
os: ubuntu-latest | |
packages: python3-zmq qttools5-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo | |
cc: gcc | |
cxx: g++ | |
- name: macOS | |
os: macos-11 | |
packages: llvm@12 [email protected] autoconf automake berkeley-db@4 libtool [email protected] miniupnpc libnatpmp pkg-config libevent qrencode gmp libsodium rust | |
no_qt: true | |
boost_root: true | |
cc: $(brew --prefix llvm@12)/bin/clang | |
cxx: $(brew --prefix llvm@12)/bin/clang++ | |
- name: macOS-latest | |
os: macos-latest | |
packages: llvm@13 [email protected] autoconf automake berkeley-db@4 libtool [email protected] miniupnpc libnatpmp pkg-config qt@5 zmq libevent qrencode gmp libsodium rust | |
boost_root: true | |
cc: $(brew --prefix llvm@13)/bin/clang | |
cxx: $(brew --prefix llvm@13)/bin/clang++ | |
steps: | |
- name: Get Source | |
uses: actions/checkout@v4 | |
- name: Setup Environment | |
run: | | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
sudo apt-add-repository "ppa:ondrej/php" -y | |
sudo apt-get --yes update | |
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.packages }} | |
fi | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
brew install "$APT_BASE" ${{ matrix.config.packages }} | |
# GA's macOS 11 image is inconsistent as to if it includes a pre-installed version of boost. Force linking | |
# to the specified version (1.76), which will overwrite the symlinks to a pre-existing version if it exists. | |
if [ "${{ matrix.config.os }}" = "macos-11" ]; then | |
brew link --overwrite -f [email protected] | |
fi | |
fi | |
- name: ccache cache files | |
uses: actions/cache@v4 | |
with: | |
path: .ccache | |
key: ${{ runner.os }}-cmake-${{ matrix.config.name }}-ccache | |
restore-keys: ${{ runner.os }}-cmake-${{ matrix.config.name }}-ccache | |
- name: build | |
run: | | |
CC=${{ matrix.config.cc }} | |
CXX=${{ matrix.config.cxx }} | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
if [ "${{ matrix.config.no_qt }}" = "true" ]; then | |
export NO_QT=1 | |
fi | |
if [ "${{ matrix.config.boost_root }}" = "true" ]; then | |
export CI_BOOST=1 | |
export CPPFLAGS="-I/usr/local/opt/[email protected]/include" | |
export LDFLAGS="-L/usr/local/opt/[email protected]/lib" | |
fi | |
fi | |
export CC | |
export CXX | |
mkdir -p ${{ github.workspace }}/cmake-build-debug && cd ${{ github.workspace }}/cmake-build-debug | |
cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" ${{ github.workspace }} | |
cmake --build ${{ github.workspace }}/cmake-build-debug --target all -- -j 2 | |
build_native_wallet: | |
name: Native-${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
needs: lint | |
env: | |
APT_BASE: ccache | |
CCACHE_DIR: ${{ github.workspace }}/.ccache | |
CCACHE_SIZE: 500M | |
CCACHE_COMPRESS: 1 | |
PARAMS_DIR: ${{ github.workspace }}/.pivx-params | |
WINEDEBUG: fixme-all | |
BOOST_TEST_RANDOM: 1 # random seed based on the current time | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: x64-Linux | |
id: Linux-x86_64-nodepends | |
os: ubuntu-20.04 | |
apt_get: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo | |
unit_tests: true | |
functional_tests: true | |
goal: install | |
BITCOIN_CONFIG: "--enable-zmq --enable-debug --with-incompatible-bdb --with-gui=qt5 CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER'" | |
- name: x64-Linux-latest | |
id: Linux-x86_64-nodepends-latest | |
os: ubuntu-latest | |
apt_get: python3-zmq qtbase5-dev qttools5-dev-tools libqt5svg5-dev libqt5charts5-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libgmp-dev libsodium-dev cargo | |
unit_tests: true | |
functional_tests: true | |
goal: install | |
BITCOIN_CONFIG: "--enable-zmq --enable-debug --with-incompatible-bdb --with-gui=qt5 CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER'" | |
- name: x64-macOS | |
id: macOS-nodepends | |
os: macos-11 | |
brew_install: autoconf automake ccache berkeley-db@4 libtool [email protected] miniupnpc libnatpmp pkg-config [email protected] libevent qrencode gmp libsodium rust librsvg | |
unit_tests: true | |
functional_tests: true | |
cc: clang | |
cxx: clang++ | |
BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug --with-boost=/usr/local/opt/[email protected]" | |
- name: x64-macOS-latest | |
id: macOS-nodepends-latest | |
os: macos-latest | |
brew_install: autoconf automake ccache berkeley-db@4 libtool [email protected] miniupnpc libnatpmp pkg-config [email protected] qt@5 zmq libevent qrencode gmp libsodium rust librsvg | |
unit_tests: true | |
functional_tests: true | |
goal: deploy | |
cc: clang | |
cxx: clang++ | |
BITCOIN_CONFIG: "--enable-zmq --enable-gui --enable-reduce-exports --enable-werror --enable-debug --with-boost=/usr/local/opt/[email protected]" | |
steps: | |
- name: Get Source | |
uses: actions/checkout@v4 | |
- name: Setup Environment | |
run: | | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
sudo apt-add-repository "ppa:ondrej/php" -y | |
sudo apt-get --yes update | |
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.apt_get }} | |
fi | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
brew install ${{ matrix.config.brew_install }} | |
pip3.8 install ds_store mac_alias | |
fi | |
- name: ccache cache files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.ccache | |
.pivx-params | |
key: ${{ runner.os }}-${{ matrix.config.id }}-native-ccache | |
restore-keys: ${{ runner.os }}-${{ matrix.config.id }}-native-ccache | |
- name: Build Syslib Wallet | |
run: | | |
export LC_ALL=C.UTF-8 | |
echo $CCACHE_DIR | |
echo $PARAMS_DIR | |
PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g") | |
# Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. | |
PATH=$PATH:/usr/lib/llvm-6.0/bin/ | |
export PATH | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
CC=${{ matrix.config.cc }} | |
CXX=${{ matrix.config.cxx }} | |
export CC | |
export CXX | |
fi | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
OUTDIR_PATH="$GITHUB_WORKSPACE/$GITHUB_RUN_NUMBER" | |
BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$GITHUB_WORKSPACE --bindir=$OUTDIR_PATH/bin --libdir=$OUTDIR_PATH/lib" | |
fi | |
if [ "${{ matrix.config.unit_tests }}" = "true" ] || [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
mkdir -p $PARAMS_DIR | |
PARAMS_FLAGS="--with-params-dir=$PARAMS_DIR" | |
fi | |
echo ::group::Autogen | |
./autogen.sh | |
echo ::endgroup:: | |
echo ::group::Configure | |
./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL ${{ matrix.config.BITCOIN_CONFIG }} $PARAMS_FLAGS || ( cat config.log && false) | |
echo ::endgroup | |
echo ::group::Build | |
make -j2 ${{ matrix.config.goal }} || ( echo "Build failure. Verbose build follows." && make ${{ matrix.config.goal }} V=1 ; false ) | |
echo ::endgroup:: | |
if [ "${{ matrix.config.unit_tests }}" = "true" ] || [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
echo ::group::Params | |
./params/install-params.sh $PARAMS_DIR | |
echo ::endgroup:: | |
fi | |
if [ "${{ matrix.config.unit_tests }}" = "true" ]; then | |
echo ::group::Unit-Tests | |
make -j2 check VERBOSE=1 | |
echo ::endgroup:: | |
fi | |
if [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
echo ::group::Functional-Tests | |
test/functional/test_runner.py --combinedlogslen=4000 ${{ matrix.config.test_runner_extra }} | |
echo ::endgroup:: | |
fi | |
build_depends: | |
name: Depends-${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
needs: lint | |
env: | |
APT_BASE: ccache | |
SDK_URL: https://bitcoincore.org/depends-sources/sdks | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: ARM 32-bit | |
os: ubuntu-20.04 | |
host: arm-linux-gnueabihf | |
apt_get: python3 g++-arm-linux-gnueabihf | |
- name: AARCH64 | |
os: ubuntu-20.04 | |
host: aarch64-linux-gnu | |
apt_get: python3 g++-aarch64-linux-gnu | |
- name: Win64 | |
os: ubuntu-20.04 | |
host: x86_64-w64-mingw32 | |
apt_get: python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64 | |
- name: 32-bit + dash | |
os: ubuntu-20.04 | |
host: i686-pc-linux-gnu | |
apt_get: g++-multilib python3-zmq | |
- name: x86_64 Linux | |
os: ubuntu-20.04 | |
host: x86_64-unknown-linux-gnu | |
apt_get: python3-zmq | |
dep_opts: DEBUG=1 | |
- name: macOS 10.12 | |
os: ubuntu-20.04 | |
host: x86_64-apple-darwin16 | |
apt_get: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools | |
XCODE_VERSION: 11.3.1 | |
XCODE_BUILD_ID: 11C505 | |
steps: | |
- name: Get Source | |
uses: actions/checkout@v4 | |
- name: Setup Environment | |
run: | | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.apt_get }} | |
- name: depends cache files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
depends/built | |
depends/sdk-sources | |
depends/${{ matrix.config.host }} | |
key: ${{ runner.os }}-depends-${{ matrix.config.host }} | |
restore-keys: ${{ runner.os }}-depends-${{ matrix.config.host }} | |
- name: Build Depends | |
run: | | |
export LC_ALL=C.UTF-8 | |
PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g") | |
# Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. | |
PATH=$PATH:/usr/lib/llvm-6.0/bin/ | |
export PATH | |
mkdir -p depends/SDKs depends/sdk-sources | |
OSX_SDK_BASENAME="Xcode-${{ matrix.config.XCODE_VERSION }}-${{ matrix.config.XCODE_BUILD_ID }}-extracted-SDK-with-libcxx-headers.tar.gz" | |
OSX_SDK_PATH="depends/sdk-sources/${OSX_SDK_BASENAME}" | |
if [ -n "${{ matrix.config.XCODE_VERSION }}" ] && [ ! -f "$OSX_SDK_PATH" ]; then | |
curl --location --fail "${SDK_URL}/${OSX_SDK_BASENAME}" -o "$OSX_SDK_PATH" | |
fi | |
if [ -n "${{ matrix.config.XCODE_VERSION }}" ] && [ -f "$OSX_SDK_PATH" ]; then | |
tar -C "depends/SDKs" -xf "$OSX_SDK_PATH" | |
fi | |
if [[ ${{ matrix.config.host }} = *-mingw32 ]]; then | |
BIN=$(which ${{ matrix.config.host }}-g++-posix) | |
sudo update-alternatives --set ${{ matrix.config.host }}-g++ $BIN | |
fi | |
if [ -z "${{ matrix.config.no_depends }}" ]; then | |
make -j2 -C depends HOST=${{ matrix.config.host }} ${{ matrix.config.dep_opts }} | |
fi | |
build_depends_wallet: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
needs: [lint, build_depends] | |
env: | |
APT_BASE: ccache | |
CCACHE_DIR: ${{ github.workspace }}/.ccache | |
CCACHE_SIZE: 500M | |
CCACHE_COMPRESS: 1 | |
PARAMS_DIR: ${{ github.workspace }}/.pivx-params | |
WINEDEBUG: fixme-all | |
BOOST_TEST_RANDOM: 1 # random seed based on the current time | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: ARM 32-bit [GOAL:install] [no unit or functional tests] | |
id: ARM32 | |
os: ubuntu-20.04 | |
host: arm-linux-gnueabihf | |
apt_get: python3 g++-arm-linux-gnueabihf | |
unit_tests: false | |
functional_tests: false | |
goal: install | |
# -Wno-psabi is to disable ABI warnings: "note: parameter passing for argument of type ... changed in GCC 7.1" | |
# This could be removed once the ABI change warning does not show up by default | |
BITCOIN_CONFIG: "--with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --disable-online-rust CXXFLAGS=-Wno-psabi LDFLAGS=-static-libstdc++" | |
- name: AARCH64 [GOAL:install] [no unit or functional tests] | |
id: ARM64 | |
os: ubuntu-20.04 | |
host: aarch64-linux-gnu | |
apt_get: python3 g++-aarch64-linux-gnu | |
unit_tests: false | |
functional_tests: false | |
goal: install | |
BITCOIN_CONFIG: "--with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --disable-online-rust LDFLAGS=-static-libstdc++" | |
- name: Win64 [GOAL:deploy] [no unit or functional tests] | |
id: Win64 | |
os: ubuntu-20.04 | |
host: x86_64-w64-mingw32 | |
apt_get: python3 nsis g++-mingw-w64-x86-64 wine-binfmt wine64 | |
unit_tests: false | |
functional_tests: false | |
symbol_check: true | |
goal: deploy | |
BITCOIN_CONFIG: "--with-gui=auto --enable-reduce-exports --disable-online-rust" | |
- name: x86_64 Linux [GOAL:install] | |
id: Linux-x86_64 | |
os: ubuntu-20.04 | |
host: x86_64-unknown-linux-gnu | |
apt_get: python3-zmq | |
unit_tests: true | |
functional_tests: true | |
goal: install | |
test_runner_extra: "--coverage --all --exclude feature_dbcrash" | |
BITCOIN_CONFIG: "--enable-zmq --with-gui=qt5 --enable-glibc-back-compat --enable-reduce-exports --disable-online-rust LDFLAGS=-static-libstdc++" | |
- name: x86_64 Linux [GOAL:install] [no GUI, no unit tests, only functional tests on legacy pre-HD wallets] | |
id: Linux-x86_64-nogui | |
os: ubuntu-20.04 | |
host: x86_64-unknown-linux-gnu | |
apt_get: python3-zmq | |
unit_tests: false | |
functional_tests: true | |
goal: install | |
test_runner_extra: "--legacywallet" | |
BITCOIN_CONFIG: "--enable-zmq --with-gui=no --enable-glibc-back-compat --enable-reduce-exports --disable-online-rust LDFLAGS=-static-libstdc++" | |
- name: macOS 10.12 [GOAL:deploy] [no unit or functional tests] | |
id: macOS10.12 | |
os: ubuntu-20.04 | |
host: x86_64-apple-darwin16 | |
apt_get: cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python3-dev python3-setuptools | |
XCODE_VERSION: 11.3.1 | |
XCODE_BUILD_ID: 11C505 | |
unit_tests: false | |
functional_tests: false | |
symbol_check: true | |
goal: deploy | |
BITCOIN_CONFIG: "--enable-gui --enable-reduce-exports --enable-werror --disable-online-rust" | |
steps: | |
- name: Get Source | |
uses: actions/checkout@v4 | |
- name: Setup Environment | |
run: | | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
sudo apt-add-repository "ppa:ondrej/php" -y | |
sudo apt-get --yes update | |
sudo apt-get install --no-install-recommends --no-upgrade -qq "$APT_BASE" ${{ matrix.config.apt_get }} | |
fi | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
brew install ${{ matrix.config.brew_install }} | |
pip3.8 install ds_store mac_alias | |
fi | |
- name: depends cache files | |
if: matrix.config.no_depends != 1 | |
uses: actions/cache@v4 | |
with: | |
path: | | |
depends/built | |
depends/sdk-sources | |
depends/${{ matrix.config.host }} | |
key: ${{ runner.os }}-depends-${{ matrix.config.host }} | |
restore-keys: ${{ runner.os }}-depends-${{ matrix.config.host }} | |
- name: ccache cache files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.ccache | |
.pivx-params | |
key: ${{ runner.os }}-depbuild-${{ matrix.config.id }}-ccache | |
restore-keys: ${{ runner.os }}-depbuilt-${{ matrix.config.id }}-ccache | |
- name: Build Wallet | |
run: | | |
export LC_ALL=C.UTF-8 | |
echo $CCACHE_DIR | |
echo $PARAMS_DIR | |
PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g") | |
# Add llvm-symbolizer directory to PATH. Needed to get symbolized stack traces from the sanitizers. | |
PATH=$PATH:/usr/lib/llvm-6.0/bin/ | |
export PATH | |
mkdir -p depends/SDKs depends/sdk-sources | |
OSX_SDK_BASENAME="Xcode-${{ matrix.config.XCODE_VERSION }}-${{ matrix.config.XCODE_BUILD_ID }}-extracted-SDK-with-libcxx-headers.tar.gz" | |
OSX_SDK_PATH="depends/sdk-sources/${OSX_SDK_BASENAME}" | |
if [ -n "${{ matrix.config.XCODE_VERSION }}" ] && [ ! -f "$OSX_SDK_PATH" ]; then | |
curl --location --fail "${SDK_URL}/${OSX_SDK_BASENAME}" -o "$OSX_SDK_PATH" | |
fi | |
if [ -n "${{ matrix.config.XCODE_VERSION }}" ] && [ -f "$OSX_SDK_PATH" ]; then | |
tar -C "depends/SDKs" -xf "$OSX_SDK_PATH" | |
fi | |
if [[ ${{ matrix.config.host }} = *-mingw32 ]]; then | |
BIN=$(which ${{ matrix.config.host }}-g++-posix) | |
sudo update-alternatives --set ${{ matrix.config.host }}-g++ $BIN | |
sudo update-binfmts --import /usr/share/binfmts/wine | |
fi | |
if [[ ${{ matrix.config.os }} = macos* ]]; then | |
CC=${{ matrix.config.cc }} | |
CXX=${{ matrix.config.cxx }} | |
export CC | |
export CXX | |
fi | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
OUTDIR_PATH="$GITHUB_WORKSPACE/$GITHUB_RUN_NUMBER-${{ matrix.config.host }}" | |
BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$GITHUB_WORKSPACE/depends/${{ matrix.config.host }} --bindir=$OUTDIR_PATH/bin --libdir=$OUTDIR_PATH/lib" | |
fi | |
if [ "${{ matrix.config.unit_tests }}" = "true" ] || [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
mkdir -p $PARAMS_DIR | |
PARAMS_FLAGS="--with-params-dir=$PARAMS_DIR" | |
fi | |
echo ::group::Autogen | |
./autogen.sh | |
echo ::endgroup:: | |
mkdir build && cd build | |
echo ::group::Configure | |
../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL ${{ matrix.config.BITCOIN_CONFIG }} $PARAMS_FLAGS || ( cat config.log && false) | |
echo ::endgroup:: | |
echo ::group::Distdir | |
make distdir VERSION=${{ matrix.config.host }} | |
echo ::endgroup:: | |
cd pivx-${{ matrix.config.host }} | |
echo ::group::Configure | |
./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL ${{ matrix.config.BITCOIN_CONFIG }} $PARAMS_FLAGS || ( cat config.log && false) | |
echo ::endgroup | |
echo ::group::Build | |
make -j2 ${{ matrix.config.goal }} || ( echo "Build failure. Verbose build follows." && make ${{ matrix.config.goal }} V=1 ; false ) | |
echo ::endgroup:: | |
if [ "${{ matrix.config.unit_tests }}" = "true" ] || [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
echo ::group::Params | |
./params/install-params.sh $PARAMS_DIR | |
echo ::endgroup:: | |
fi | |
echo ::group::Security-Check | |
make -j2 -C src check-security | |
echo ::endgroup:: | |
if [ "${{matrix.config.symbol_check }}" = "true" ]; then | |
echo ::group::Symbol-Check | |
make -j2 -C src check-symbols | |
echo ::endgroup:: | |
fi | |
if [ "${{ matrix.config.unit_tests }}" = "true" ]; then | |
echo ::group::Unit-Tests | |
if [[ ${{ matrix.config.os }} = ubuntu* ]]; then | |
LD_LIBRARY_PATH=$GITHUB_WORKSPACE/depends/"${{ matrix.config.host }}"/lib make -j2 check VERBOSE=1 | |
else | |
make -j2 check VERBOSE=1 | |
fi | |
echo ::endgroup:: | |
fi | |
if [ "${{ matrix.config.functional_tests }}" = "true" ]; then | |
echo ::group::Functional-Tests | |
test/functional/test_runner.py --combinedlogslen=4000 ${{ matrix.config.test_runner_extra }} | |
echo ::endgroup:: | |
fi |