From 1e8bf77a9b628593b40438746efcc2963cbf3520 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Tue, 11 Nov 2025 22:02:40 +0000 Subject: [PATCH] FreeBSD: Compare VM `sync` options --- .github/workflows/freebsd.yml | 386 +++++++++++++++++++++++++++++++++- 1 file changed, 380 insertions(+), 6 deletions(-) diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index 409d534..3509b26 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml @@ -23,8 +23,8 @@ env: CI_NCPU: 4 jobs: - freebsd-syslibs: - name: 'FreeBSD: system libs, no GUI' + freebsd-syslibs-rsync: + name: 'FreeBSD, rsync: system libs, no GUI' runs-on: ubuntu-latest defaults: run: @@ -41,7 +41,7 @@ jobs: with: prepare: pkg install -y cmake-core ninja git pkgconf boost-libs libevent sqlite3 capnproto libzmq4 python3 net/py-pyzmq databases/py-sqlite3 run: git config --global --add safe.directory ${{ github.workspace }} - sync: 'rsync' + sync: rsync copyback: false - name: Checkout helper actions @@ -80,8 +80,8 @@ jobs: cd ${{ github.workspace }} ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 - freebsd-depends: - name: 'FreeBSD: depends, MP' + freebsd-depends-rsync: + name: 'FreeBSD, rsync: depends, MP' runs-on: ubuntu-latest defaults: run: @@ -98,7 +98,7 @@ jobs: with: prepare: pkg install -y bash curl gmake cmake-core ninja git pkgconf bison python3 net/py-pyzmq databases/py-sqlite3 run: git config --global --add safe.directory ${{ github.workspace }} - sync: 'rsync' + sync: rsync copyback: false - name: Checkout helper actions @@ -148,3 +148,377 @@ jobs: run: | cd ${{ github.workspace }} ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-syslibs-scp: + name: 'FreeBSD, scp: system libs, no GUI' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y cmake-core ninja git pkgconf boost-libs libevent sqlite3 capnproto libzmq4 python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: scp + copyback: false + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: | + cd ${{ github.workspace }} + cmake -B build -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-depends-scp: + name: 'FreeBSD, scp: depends, MP' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y bash curl gmake cmake-core ninja git pkgconf bison python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: scp + copyback: false + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Build depends + uses: ./ci/nightly/.github/actions/build-depends + with: + vm: freebsd + options: "MULTIPROCESS=1" + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: > + cd ${{ github.workspace }} && + cmake -B build \ + --toolchain depends/$(./depends/config.sub $(./depends/config.guess))/toolchain.cmake \ + -DBUILD_BENCH=ON \ + -DBUILD_FUZZ_BINARY=ON \ + `# TODO: Reenable GUI tests.` \ + -DBUILD_GUI_TESTS=OFF \ + -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-syslibs-sshfs: + name: 'FreeBSD, sshfs: system libs, no GUI' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y cmake-core ninja git pkgconf boost-libs libevent sqlite3 capnproto libzmq4 python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: sshfs + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: | + cd ${{ github.workspace }} + cmake -B build -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-depends-sshfs: + name: 'FreeBSD, sshfs: depends, MP' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y bash curl gmake cmake-core ninja git pkgconf bison python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: sshfs + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Build depends + uses: ./ci/nightly/.github/actions/build-depends + with: + vm: freebsd + options: "MULTIPROCESS=1" + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: > + cd ${{ github.workspace }} && + cmake -B build \ + --toolchain depends/$(./depends/config.sub $(./depends/config.guess))/toolchain.cmake \ + -DBUILD_BENCH=ON \ + -DBUILD_FUZZ_BINARY=ON \ + `# TODO: Reenable GUI tests.` \ + -DBUILD_GUI_TESTS=OFF \ + -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-syslibs-nfs: + name: 'FreeBSD, nfs: system libs, no GUI' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y cmake-core ninja git pkgconf boost-libs libevent sqlite3 capnproto libzmq4 python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: nfs + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: | + cd ${{ github.workspace }} + cmake -B build -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8 + + freebsd-depends-nfs: + name: 'FreeBSD, nfs: depends, MP' + runs-on: ubuntu-latest + defaults: + run: + shell: freebsd {0} + + steps: + - name: Checkout Bitcoin Core repo + uses: actions/checkout@v5 + with: + repository: bitcoin/bitcoin + + - name: Start FreeBSD VM + uses: vmactions/freebsd-vm@v1 + with: + prepare: pkg install -y bash curl gmake cmake-core ninja git pkgconf bison python3 net/py-pyzmq databases/py-sqlite3 + run: git config --global --add safe.directory ${{ github.workspace }} + sync: nfs + + - name: Checkout helper actions + uses: actions/checkout@v5 + with: + sparse-checkout: .github/actions + path: ci/nightly + + - name: Build depends + uses: ./ci/nightly/.github/actions/build-depends + with: + vm: freebsd + options: "MULTIPROCESS=1" + + - name: Generate buildsystem + env: + CMAKE_GENERATOR: 'Ninja' + run: > + cd ${{ github.workspace }} && + cmake -B build \ + --toolchain depends/$(./depends/config.sub $(./depends/config.guess))/toolchain.cmake \ + -DBUILD_BENCH=ON \ + -DBUILD_FUZZ_BINARY=ON \ + `# TODO: Reenable GUI tests.` \ + -DBUILD_GUI_TESTS=OFF \ + -DWERROR=ON + + - name: Build + run: cmake --build ${{ github.workspace }}/build + + - name: Check 'bitcoind' executable + run: | + set -e + cd ${{ github.workspace }} + ls -l build/bin/bitcoind + file build/bin/bitcoind + ldd build/bin/bitcoind + ./build/bin/bitcoind -version + + - name: Run test suite + uses: ./ci/nightly/.github/actions/run-test-suite + with: + vm: freebsd + + - name: Run functional tests + if: ${{ ! inputs.skip_functional_tests }} + run: | + cd ${{ github.workspace }} + ./build/test/functional/test_runner.py --ci --extended -j ${{ env.CI_NCPU }} --combinedlogslen=99999999 --quiet --timeout-factor=8