From 5e99c0d1321b83b2518a6d8cef447b822df12a61 Mon Sep 17 00:00:00 2001 From: SChernykh <15806605+SChernykh@users.noreply.github.com> Date: Wed, 21 Feb 2024 19:32:53 +0100 Subject: [PATCH] test --- .github/workflows/c-cpp.yml | 740 -------------------------- .github/workflows/clang-tidy.yml | 39 -- .github/workflows/codeql-analysis.yml | 81 --- .github/workflows/cppcheck.yml | 108 ---- .github/workflows/msvc-analysis.yml | 69 --- .github/workflows/source-snapshot.yml | 24 - .github/workflows/test-sync.yml | 356 +------------ 7 files changed, 8 insertions(+), 1409 deletions(-) delete mode 100644 .github/workflows/c-cpp.yml delete mode 100644 .github/workflows/clang-tidy.yml delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 .github/workflows/cppcheck.yml delete mode 100644 .github/workflows/msvc-analysis.yml delete mode 100644 .github/workflows/source-snapshot.yml diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml deleted file mode 100644 index e3de6ee..0000000 --- a/.github/workflows/c-cpp.yml +++ /dev/null @@ -1,740 +0,0 @@ -name: C/C++ CI - -on: - push: - paths-ignore: - - 'docker-compose/**' - - 'docs/**' - - 'README.md' - - pull_request: - -jobs: - build-alpine-static: - - timeout-minutes: 240 - runs-on: ubuntu-22.04 - - strategy: - matrix: - config: - - {arch: x86_64, branch: latest-stable, flags: "-ffunction-sections -Wno-error=inline"} - - {arch: aarch64, branch: latest-stable, flags: "-ffunction-sections -Wno-error=inline -mfix-cortex-a53-835769 -mfix-cortex-a53-843419"} - - {arch: riscv64, branch: edge, flags: "-ffunction-sections -Wno-error=inline"} - - steps: - - name: Setup Alpine Linux - uses: jirutka/setup-alpine@v1 - with: - arch: ${{ matrix.config.arch }} - branch: ${{ matrix.config.branch }} - - - name: Install dependencies - shell: alpine.sh --root {0} - run: | - apk add git cmake gcc g++ make linux-headers - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - shell: alpine.sh {0} - run: | - cd external/src/curl - cmake . -DCMAKE_C_FLAGS="-Os -flto=auto ${{ matrix.config.flags }}" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j$(nproc) - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - shell: alpine.sh {0} - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j$(nproc) - - - name: Build libzmq - shell: alpine.sh {0} - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j$(nproc) - - - name: Build p2pool - shell: alpine.sh {0} - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_BINARY=ON -DARCH_ID=${{ matrix.config.arch }} - make -j$(nproc) p2pool - - - name: Run RandomX tests - shell: alpine.sh {0} - run: | - cd build - ./p2pool --test - make -j$(nproc) randomx-tests - external/src/RandomX/randomx-tests - - - name: Build tests - shell: alpine.sh {0} - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_LIBS=ON -DARCH_ID=${{ matrix.config.arch }} - make -j$(nproc) - - - name: Run tests - shell: alpine.sh {0} - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests - - - name: List directory - run: | - cd build - ls -la - file p2pool - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-alpine-static-${{ matrix.config.arch }} - path: build/p2pool - - build-ubuntu: - - timeout-minutes: 60 - runs-on: ${{ matrix.config.os }} - - strategy: - matrix: - config: - - {os: ubuntu-20.04, c: gcc-8, cpp: g++-8, flags: ""} - - {os: ubuntu-20.04, c: gcc-11, cpp: g++-11, flags: ""} - - {os: ubuntu-22.04, c: gcc-12, cpp: g++-12, flags: ""} - - steps: - - name: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev ${{ matrix.config.c }} ${{ matrix.config.cpp }} - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cpp }} -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' - make -j$(nproc) p2pool - - - name: Run RandomX tests - run: | - cd build - ./p2pool --test - make -j$(nproc) randomx-tests - external/src/RandomX/randomx-tests - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cpp }} -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' - make -j$(nproc) - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-${{ matrix.config.os }}-${{ matrix.config.c }} - path: build/p2pool - - build-ubuntu-static-libs: - - timeout-minutes: 60 - runs-on: ubuntu-22.04 - - strategy: - matrix: - config: - - {flags: "-fuse-linker-plugin -ffunction-sections -Wno-error=inline"} - - steps: - - name: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install -y git build-essential cmake libgss-dev gcc-12 g++-12 - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12 - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_C_FLAGS="-Os -flto=auto ${{ matrix.config.flags }}" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j$(nproc) - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j$(nproc) - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j$(nproc) - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_LIBS=ON - make -j$(nproc) p2pool - - - name: Run RandomX tests - run: | - cd build - ./p2pool --test - make -j$(nproc) randomx-tests - external/src/RandomX/randomx-tests - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_LIBS=ON - make -j$(nproc) - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-ubuntu-static-libs - path: build/p2pool - - build-ubuntu-aarch64: - - timeout-minutes: 60 - runs-on: ${{ matrix.config.os }} - - strategy: - matrix: - config: - - {os: ubuntu-20.04, flags: "-fuse-linker-plugin -ffunction-sections -mfix-cortex-a53-835769 -mfix-cortex-a53-843419"} - - {os: ubuntu-22.04, flags: "-fuse-linker-plugin -ffunction-sections -mfix-cortex-a53-835769 -mfix-cortex-a53-843419"} - - steps: - - name: Install dependencies - run: | - sudo apt update - sudo apt install -y git build-essential cmake gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu qemu-user - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_TOOLCHAIN_FILE=../../../cmake/aarch64_toolchain.cmake -DCMAKE_C_FLAGS="-Os -flto=auto ${{ matrix.config.flags }}" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j$(nproc) - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/aarch64_toolchain.cmake -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j$(nproc) - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_TOOLCHAIN_FILE=../../../cmake/aarch64_toolchain.cmake -DCMAKE_C_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='-Os -flto=auto ${{ matrix.config.flags }}' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j$(nproc) - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/aarch64_toolchain.cmake -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_LIBS=ON -DARCH_ID=aarch64 - make -j$(nproc) p2pool - - - name: Run RandomX tests - run: | - cd build - qemu-aarch64 -L /usr/aarch64-linux-gnu p2pool --test - make -j$(nproc) randomx-tests - qemu-aarch64 -L /usr/aarch64-linux-gnu external/src/RandomX/randomx-tests - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_STRIP=/usr/bin/aarch64-linux-gnu-strip -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DSTATIC_LIBS=ON -DARCH_ID=aarch64 - make -j$(nproc) - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - qemu-aarch64 -L /usr/aarch64-linux-gnu ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-${{ matrix.config.os }}-aarch64 - path: build/p2pool - - build-windows-msys2: - - timeout-minutes: 60 - runs-on: windows-latest - - strategy: - matrix: - config: - - {c: "gcc", cxx: "g++", flags: "-ffunction-sections -Wno-error=maybe-uninitialized -Wno-error=attributes"} - - {c: "clang", cxx: "clang++", flags: "-fuse-ld=lld -Wno-unused-command-line-argument"} - - defaults: - run: - shell: msys2 {0} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Setup MSYS2 - uses: eine/setup-msys2@v2 - with: - update: true - install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang mingw-w64-x86_64-lld mingw-w64-x86_64-cmake make git - - - name: Apply patch - if: matrix.config.c == 'clang' - run: | - cd / - git apply --verbose --ignore-whitespace --directory=mingw64/include/c++/`ls mingw64/include/c++`/ /d/a/p2pool/p2pool/patches/msys2/typeinfo.patch - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_C_FLAGS="-Os ${{ matrix.config.flags }}" -DCURL_TARGET_WINDOWS_VERSION=0x0600 -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j$(nproc) - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_C_FLAGS='-Os ${{ matrix.config.flags }}' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j$(nproc) - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_FLAGS='-Os ${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='-Os ${{ matrix.config.flags }}' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DZMQ_HAVE_IPC=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j$(nproc) - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_FLAGS="${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections" -DSTATIC_LIBS=ON -DOPENSSL_NO_ASM=ON -DWITH_LTO=OFF - make -j$(nproc) p2pool - - - name: Run RandomX tests - run: | - cd build - ./p2pool.exe --test - make -j$(nproc) randomx-tests - external/src/RandomX/randomx-tests.exe - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }} -DCMAKE_C_FLAGS="${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections" -DCMAKE_CXX_FLAGS="${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections" -DSTATIC_LIBS=ON - make -j$(nproc) - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests.exe - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-msys2-${{ matrix.config.c }}.exe - path: build/p2pool.exe - - build-windows-msbuild: - - timeout-minutes: 60 - runs-on: windows-${{ matrix.config.os }} - - strategy: - matrix: - config: - - {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "ON"} - - {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "ON", upnp: "ON", grpc: "OFF"} - - {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "ON", grpc: "OFF"} - - {vs: Visual Studio 16 2019, os: 2019, vspath: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise", rx: "OFF", upnp: "OFF", grpc: "OFF"} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Setup cmake - uses: lukka/get-cmake@latest - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -G "${{ matrix.config.vs }}" -DCMAKE_SYSTEM_VERSION="10.0" -DWITH_RANDOMX=${{ matrix.config.rx }} -DWITH_UPNP=${{ matrix.config.upnp }} -DWITH_GRPC=${{ matrix.config.grpc }} - & "${{ matrix.config.vspath }}\\MSBuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Release p2pool.vcxproj - - - name: Check Windows 7 compatibility - shell: cmd - run: | - call "${{ matrix.config.vspath }}\\VC\\Auxiliary\\Build\\vcvarsall.bat" amd64 - dumpbin /IMPORTS build/Release/p2pool.exe > 1.txt - findstr /R /C:"^ *[0-9A-F][0-9A-F]* [a-zA-Z][a-zA-Z0-9]*$" 1.txt > 2.txt - python tests/src/check_win7.py 2.txt - - - name: Run RandomX tests - if: matrix.config.rx == 'ON' - run: | - build/Release/p2pool.exe --test - cd build/external/src/RandomX - & "${{ matrix.config.vspath }}\\MSBuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Release randomx-tests.vcxproj - Release/randomx-tests.exe - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -G "${{ matrix.config.vs }}" -DCMAKE_SYSTEM_VERSION="10.0" -DDEV_WITH_ASAN=ON - & "${{ matrix.config.vspath }}\\MSBuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Debug p2pool_tests.vcxproj - - - name: Run tests - run: | - cd tests/build/Debug - 7z x *.gz - ./p2pool_tests.exe - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-vs-${{ matrix.config.os }}-randomx-${{ matrix.config.rx }}-upnp-${{ matrix.config.upnp }}-grpc-${{ matrix.config.grpc }}.exe - path: build/Release/p2pool.exe - - build-macos: - - timeout-minutes: 60 - runs-on: macos-11 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS="-Os -flto" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j3 - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='-Os -flto' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j3 - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='-Os -flto' -DCMAKE_CXX_FLAGS='-Os -flto' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j3 - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DSTATIC_LIBS=ON - make -j3 p2pool - - - name: Run RandomX tests - run: | - cd build - ./p2pool --test - make -j3 randomx-tests - external/src/RandomX/randomx-tests - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DSTATIC_LIBS=ON - make -j3 - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-macos-11 - path: build/p2pool - - build-macos-aarch64: - - timeout-minutes: 30 - runs-on: macos-14 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS="-Os -target arm64-apple-macos-11" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j3 - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='-Os -target arm64-apple-macos-11' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j3 - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='-Os -target arm64-apple-macos-11' -DCMAKE_CXX_FLAGS='-Os -target arm64-apple-macos-11' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j3 - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS="-target arm64-apple-macos-11" -DCMAKE_CXX_FLAGS="-target arm64-apple-macos-11" -DSTATIC_LIBS=ON -DWITH_LTO=OFF -DARCH_ID=aarch64 - make -j3 p2pool - - - name: Run RandomX tests - run: | - cd build - ./p2pool --test - make -j3 randomx-tests - external/src/RandomX/randomx-tests - - - name: Build tests - run: | - cd tests - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS="-target arm64-apple-macos-11" -DCMAKE_CXX_FLAGS="-target arm64-apple-macos-11" -DSTATIC_LIBS=ON -DWITH_LTO=OFF -DARCH_ID=aarch64 - make -j3 - - - name: Run tests - run: | - cd tests/build - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-macos-11-aarch64 - path: build/p2pool - - build-freebsd: - - timeout-minutes: 60 - runs-on: ${{ matrix.os.host }} - - strategy: - matrix: - os: - - name: freebsd - architecture: x86-64 - version: '13.2' - host: macos-13 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Delete unused files - run: | - rm -rf .git - rm -rf external/lib - - - name: Build p2pool - uses: cross-platform-actions/action@v0.22.0 - with: - operating_system: ${{ matrix.os.name }} - architecture: ${{ matrix.os.architecture }} - version: ${{ matrix.os.version }} - memory: 8G - cpu_count: 4 - shell: bash - run: | - sudo pkg install -y cmake - cd external/src/curl - cmake . -DCMAKE_C_FLAGS="-Os -flto" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j4 - cd lib && mkdir .libs && cp libcurl.a .libs - cd ../../libuv - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j4 - cd ../../libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_FLAGS='-Os -flto' -DCMAKE_CXX_FLAGS='-Os -flto' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j4 - cd ../../../.. - mkdir build - cd build - cmake .. -DSTATIC_LIBS=ON - make -j4 p2pool - ./p2pool --test - make -j4 randomx-tests - external/src/RandomX/randomx-tests - cd ../tests - mkdir build - cd build - cmake .. -DSTATIC_LIBS=ON - make -j4 p2pool_tests - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-${{ matrix.os.name }}-${{ matrix.os.version }} - path: build/p2pool - - build-openbsd: - - timeout-minutes: 90 - runs-on: ${{ matrix.os.host }} - - strategy: - matrix: - os: - - name: openbsd - architecture: x86-64 - version: '7.4' - host: macos-13 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Delete unused files - run: | - rm -rf .git - rm -rf external/lib - - - name: Build p2pool - uses: cross-platform-actions/action@v0.22.0 - with: - operating_system: ${{ matrix.os.name }} - architecture: ${{ matrix.os.architecture }} - version: ${{ matrix.os.version }} - memory: 8G - cpu_count: 4 - shell: bash - run: | - sudo pkg_add -I cmake libuv zeromq curl - mkdir build && cd build - cmake .. - make -j4 p2pool - cd ../tests - mkdir build && cd build - cmake .. - make -j4 p2pool_tests - gunzip *.gz - ./p2pool_tests - - - name: Archive binary - uses: actions/upload-artifact@v4 - with: - name: p2pool-${{ matrix.os.name }}-${{ matrix.os.version }} - path: build/p2pool diff --git a/.github/workflows/clang-tidy.yml b/.github/workflows/clang-tidy.yml deleted file mode 100644 index 1192a29..0000000 --- a/.github/workflows/clang-tidy.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: clang-tidy - -on: - push: - paths-ignore: - - 'docker-compose/**' - - 'docs/**' - - 'README.md' - - pull_request: - -jobs: - clang-tidy: - runs-on: ubuntu-22.04 - - steps: - - name: Install clang - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x llvm.sh - sudo ./llvm.sh 18 - sudo apt-get install -y clang-tidy-18 - clang-tidy-18 --verify-config - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: cmake p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DDEV_CLANG_TIDY=ON -DSTATIC_LIBS=ON - - - name: Run clang-tidy - run: | - cd src - clang-tidy-18 *.cpp -p ../build -checks=-clang-diagnostic-undefined-internal,-clang-analyzer-optin.performance.Padding,-clang-diagnostic-nan-infinity-disabled -warnings-as-errors=* -header-filter=^[^\.] diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index f3d34a7..0000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,81 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - paths-ignore: - - 'docker-compose/**' - - 'docs/**' - - 'README.md' - - pull_request: - - schedule: - - cron: '44 11 * * 0' - -jobs: - analyze: - name: Analyze - timeout-minutes: 180 - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'cpp' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Install dependencies - run: | - sudo apt update && sudo apt install git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏ī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/cppcheck.yml b/.github/workflows/cppcheck.yml deleted file mode 100644 index ff7132b..0000000 --- a/.github/workflows/cppcheck.yml +++ /dev/null @@ -1,108 +0,0 @@ -name: cppcheck - -on: - push: - paths-ignore: - - 'docker-compose/**' - - 'docs/**' - - 'README.md' - - pull_request: - - schedule: - - cron: '57 0 * * *' - -jobs: - cppcheck-ubuntu: - - timeout-minutes: 60 - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Checkout cppcheck - uses: actions/checkout@v4 - with: - repository: danmar/cppcheck - path: cppcheck-main - - - name: Build cppcheck - run: | - cd cppcheck-main - make -j$(nproc) cppcheck - - - name: cmake p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSTATIC_LIBS=ON - python ../cppcheck/remove_external.py compile_commands.json - - - name: Run cppcheck - run: | - cd cppcheck - ./run.sh - - - name: Archive full error list - uses: actions/upload-artifact@v4 - with: - name: errors_full-linux - path: cppcheck/errors_full.txt - - - name: Archive checkers report - uses: actions/upload-artifact@v4 - with: - name: checkers_report-linux - path: cppcheck/checkers_report.txt - - cppcheck-windows: - - timeout-minutes: 60 - runs-on: windows-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Checkout cppcheck - uses: actions/checkout@v4 - with: - repository: danmar/cppcheck - path: cppcheck-main - - - name: Build cppcheck - run: | - cd cppcheck-main - & "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\amd64\\msbuild.exe" -v:m /m /p:Configuration=Release /p:Platform=x64 - - - name: Setup cmake - uses: lukka/get-cmake@latest - - - name: cmake p2pool - run: | - mkdir build - cd build - cmake .. -G "Visual Studio 17 2022" -DSTATIC_LIBS=ON - - - name: Run cppcheck - run: | - cd cppcheck - ./run.cmd - - - name: Archive full error list - uses: actions/upload-artifact@v4 - with: - name: errors_full-windows - path: cppcheck/errors_full.txt - - - name: Archive checkers report - uses: actions/upload-artifact@v4 - with: - name: checkers_report-windows - path: cppcheck/checkers_report.txt diff --git a/.github/workflows/msvc-analysis.yml b/.github/workflows/msvc-analysis.yml deleted file mode 100644 index 9128750..0000000 --- a/.github/workflows/msvc-analysis.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. -# -# Find more information at: -# https://github.com/microsoft/msvc-code-analysis-action - -name: Microsoft C++ Code Analysis - -on: - push: - paths-ignore: - - 'docker-compose/**' - - 'docs/**' - - 'README.md' - - pull_request: - - schedule: - - cron: '40 10 * * 0' - -env: - # Path to the CMake build directory. - build: '${{ github.workspace }}/build' - config: 'Release' - -jobs: - analyze: - name: Analyze - timeout-minutes: 240 - runs-on: windows-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Configure CMake - run: cmake -B ${{ env.build }} -DCMAKE_BUILD_TYPE=${{ env.config }} - - # Build is not required unless generated source files are used - # - name: Build CMake - # run: cmake --build ${{ env.build }} - - - name: Initialize MSVC Code Analysis - uses: microsoft/msvc-code-analysis-action@96315324a485db21449515180214ecb78c16a1c5 - # Provide a unique ID to access the sarif output path - id: run-analysis - with: - cmakeBuildDirectory: ${{ env.build }} - buildConfiguration: ${{ env.config }} - # Ruleset file that will determine what checks will be run - ruleset: NativeRecommendedRules.ruleset - ignoredPaths: ${{ github.workspace }}/external - - # Upload SARIF file to GitHub Code Scanning Alerts - - name: Upload SARIF to GitHub - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: ${{ steps.run-analysis.outputs.sarif }} - - # Upload SARIF file as an Artifact to download and view - - name: Upload SARIF as an Artifact - uses: actions/upload-artifact@v4 - with: - name: sarif-file - path: ${{ steps.run-analysis.outputs.sarif }} diff --git a/.github/workflows/source-snapshot.yml b/.github/workflows/source-snapshot.yml deleted file mode 100644 index 9114982..0000000 --- a/.github/workflows/source-snapshot.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: source-snapshot - -on: [push, pull_request] - -jobs: - source-snapshot: - runs-on: ubuntu-22.04 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Compress source code - run: | - mkdir build - XZ_OPT=-e9 tar --exclude=".git" --exclude="build" -f build/p2pool_source.tar.xz -c ../p2pool --xz - - - name: Archive source code - uses: actions/upload-artifact@v4 - with: - name: p2pool_source.tar.xz - path: build/p2pool_source.tar.xz diff --git a/.github/workflows/test-sync.yml b/.github/workflows/test-sync.yml index 0ec901b..0c8566b 100644 --- a/.github/workflows/test-sync.yml +++ b/.github/workflows/test-sync.yml @@ -10,78 +10,6 @@ on: pull_request: jobs: - sync-test-ubuntu-tsan: - - timeout-minutes: 60 - runs-on: ubuntu-22.04 - - steps: - - name: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install -y git build-essential cmake gcc-12 g++-12 - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j$(nproc) - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j$(nproc) - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j$(nproc) - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DDEV_TEST_SYNC=ON -DDEV_WITH_TSAN=ON -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-fsanitize=thread -Og -fno-omit-frame-pointer -g' -DWITH_LTO=OFF -DSTATIC_LIBS=ON - make -j$(nproc) p2pool - - - name: Run p2pool - run: | - cd build - mkdir data - python ../tests/src/stratum_dummy.py 1 & - python ../tests/src/stratum_dummy.py 2 & - python ../tests/src/stratum_dummy.py 3 & - python ../tests/src/mm_server.py 8000 id0 data0 & - python ../tests/src/mm_server.py 8001 id1 data1 & - python ../tests/src/mm_server.py 8002 id2 data2 & - TSAN_OPTIONS="suppressions=../tests/src/tsan_sup.txt halt_on_error=1" ./p2pool ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build - grep 'Synchronization finished successfully' p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_ubuntu_data_tsan - path: | - build/*.log - build/data/ - sync-test-ubuntu-msan: timeout-minutes: 60 runs-on: ubuntu-22.04 @@ -96,14 +24,14 @@ jobs: run: | wget https://apt.llvm.org/llvm.sh chmod +x llvm.sh - sudo ./llvm.sh 17 + sudo ./llvm.sh 18 - name: Build libcxx_msan run: | - git clone --depth=1 https://github.com/llvm/llvm-project -b release/17.x + git clone --depth=1 https://github.com/llvm/llvm-project -b release/18.x cd llvm-project mkdir build - cmake -G Ninja -S runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DLLVM_USE_SANITIZER=MemoryWithOrigins + cmake -G Ninja -S runtimes -B build -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DLLVM_USE_SANITIZER=MemoryWithOrigins ninja -C build cxx cxxabi cd build mkdir /tmp/libcxx_msan @@ -118,7 +46,7 @@ jobs: - name: Build libcurl run: | cd external/src/curl - cmake . -DCMAKE_C_COMPILER=clang-17 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF + cmake . -DCMAKE_C_COMPILER=clang-18 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF make -j$(nproc) cd lib && mkdir .libs && cp libcurl.a .libs @@ -127,7 +55,7 @@ jobs: cd external/src/libuv mkdir build cd build - cmake .. -DCMAKE_C_COMPILER=clang-17 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF + cmake .. -DCMAKE_C_COMPILER=clang-18 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF make -j$(nproc) - name: Build libzmq @@ -135,14 +63,14 @@ jobs: cd external/src/libzmq mkdir build cd build - cmake .. -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-nostdinc++ -nostdlib++ -fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g -isystem /tmp/libcxx_msan/include/c++/v1 -L/tmp/libcxx_msan/lib -lc++ -lc++abi -Wno-unused-command-line-argument' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF + cmake .. -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-nostdinc++ -nostdlib++ -fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -Og -fno-omit-frame-pointer -g -isystem /tmp/libcxx_msan/include/c++/v1 -L/tmp/libcxx_msan/lib -lc++ -lc++abi -Wno-unused-command-line-argument' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF make -j$(nproc) - name: Build p2pool run: | mkdir build cd build - cmake .. -DCMAKE_C_COMPILER=clang-17 -DCMAKE_CXX_COMPILER=clang++-17 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-nostdinc++ -nostdlib++ -fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -isystem /tmp/libcxx_msan/include/c++/v1 -L/tmp/libcxx_msan/lib -Wl,-rpath /tmp/libcxx_msan/lib -lc++ -lc++abi -Wno-unused-command-line-argument -fuse-ld=lld-17 -fno-omit-frame-pointer -g' -DDEV_TEST_SYNC=ON -DDEV_WITH_MSAN=ON -DWITH_LTO=OFF -DSTATIC_LIBS=ON + cmake .. -DCMAKE_C_COMPILER=clang-18 -DCMAKE_CXX_COMPILER=clang++-18 -DCMAKE_C_FLAGS='-fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-nostdinc++ -nostdlib++ -fsanitize=memory -fsanitize-recover -fsanitize-memory-track-origins -isystem /tmp/libcxx_msan/include/c++/v1 -L/tmp/libcxx_msan/lib -Wl,-rpath /tmp/libcxx_msan/lib -lc++ -lc++abi -Wno-unused-command-line-argument -fuse-ld=lld-18 -fno-omit-frame-pointer -g' -DDEV_TEST_SYNC=ON -DDEV_WITH_MSAN=ON -DWITH_LTO=OFF -DSTATIC_LIBS=ON make -j$(nproc) p2pool - name: Run p2pool @@ -155,6 +83,7 @@ jobs: python ../tests/src/mm_server.py 8000 id0 data0 & python ../tests/src/mm_server.py 8001 id1 data1 & python ../tests/src/mm_server.py 8002 id2 data2 & + sudo sysctl vm.mmap_rnd_bits=28 MSAN_OPTIONS="halt_on_error=1" ./p2pool ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - name: Check p2pool.log @@ -169,272 +98,3 @@ jobs: path: | build/*.log build/data/ - - sync-test-ubuntu-ubsan: - - timeout-minutes: 60 - runs-on: ubuntu-22.04 - - steps: - - name: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev gcc-12 g++-12 - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DDEV_TEST_SYNC=ON -DDEV_WITH_UBSAN=ON -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DWITH_LTO=OFF - make -j$(nproc) p2pool - - - name: Run p2pool - run: | - cd build - mkdir data - python ../tests/src/stratum_dummy.py 1 & - python ../tests/src/stratum_dummy.py 2 & - python ../tests/src/stratum_dummy.py 3 & - python ../tests/src/mm_server.py 8000 id0 data0 & - python ../tests/src/mm_server.py 8001 id1 data1 & - python ../tests/src/mm_server.py 8002 id2 data2 & - UBSAN_OPTIONS="suppressions=../tests/src/ubsan_sup.txt halt_on_error=1" ./p2pool ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build - grep 'Synchronization finished successfully' p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_ubuntu_data_ubsan - path: | - build/*.log - build/data/ - - sync-test-ubuntu-asan: - - timeout-minutes: 60 - runs-on: ubuntu-22.04 - - steps: - - name: Install dependencies - run: | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test - sudo apt update - sudo apt install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev gcc-12 g++-12 - - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DDEV_TEST_SYNC=ON -DDEV_WITH_ASAN=ON -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_FLAGS="-fno-omit-frame-pointer -fsanitize=address -Og -g" -DCMAKE_CXX_FLAGS="-fno-omit-frame-pointer -fsanitize=address -Og -g" -DWITH_LTO=OFF - make -j$(nproc) p2pool - - - name: Run p2pool - run: | - cd build - mkdir data - python ../tests/src/stratum_dummy.py 1 & - python ../tests/src/stratum_dummy.py 2 & - python ../tests/src/stratum_dummy.py 3 & - python ../tests/src/mm_server.py 8000 id0 data0 & - python ../tests/src/mm_server.py 8001 id1 data1 & - python ../tests/src/mm_server.py 8002 id2 data2 & - ASAN_OPTIONS="detect_stack_use_after_return=1 atexit=1" ./p2pool ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build - grep 'Synchronization finished successfully' p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_ubuntu_data_asan - path: | - build/*.log - build/data/ - - sync-test-macos: - - timeout-minutes: 60 - runs-on: ${{ matrix.config.os }} - - strategy: - matrix: - config: - - {os: macos-11, flags: "-Og"} - - {os: macos-14, flags: "-Og -target arm64-apple-macos-11"} - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install dependencies - run: | - HOMEBREW_NO_AUTO_UPDATE=1 brew install pyenv - pyenv install 3:latest - - - name: Build libcurl - run: | - cd external/src/curl - cmake . -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS="${{ matrix.config.flags }}" -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_DISABLE_INSTALL=ON -DCURL_ENABLE_EXPORT_TARGET=OFF -DCURL_DISABLE_HEADERS_API=ON -DCURL_DISABLE_BINDLOCAL=ON -DBUILD_LIBCURL_DOCS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF - make -j3 - cd lib && mkdir .libs && cp libcurl.a .libs - - - name: Build libuv - run: | - cd external/src/libuv - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF - make -j3 - - - name: Build libzmq - run: | - cd external/src/libzmq - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF - make -j3 - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -DCMAKE_C_COMPILER="$(brew --prefix llvm@15)/bin/clang" -DCMAKE_CXX_COMPILER="$(brew --prefix llvm@15)/bin/clang++" -DCMAKE_AR="$(brew --prefix llvm@15)/bin/llvm-ar" -DCMAKE_RANLIB="$(brew --prefix llvm@15)/bin/llvm-ranlib" -DCMAKE_C_FLAGS='${{ matrix.config.flags }}' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }}' -DWITH_LTO=OFF -DSTATIC_LIBS=ON -DDEV_TEST_SYNC=ON - make -j3 p2pool - - - name: Run p2pool - run: | - cd build - mkdir data - python3 ../tests/src/stratum_dummy.py 1 & - python3 ../tests/src/stratum_dummy.py 2 & - python3 ../tests/src/stratum_dummy.py 3 & - python3 ../tests/src/mm_server.py 8000 id0 data0 & - python3 ../tests/src/mm_server.py 8001 id1 data1 & - python3 ../tests/src/mm_server.py 8002 id2 data2 & - ./p2pool ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build - grep 'Synchronization finished successfully' p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_${{ matrix.config.os }}_data - path: | - build/*.log - build/data/ - - sync-test-windows-debug-asan: - - timeout-minutes: 60 - runs-on: windows-2022 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Setup cmake - uses: lukka/get-cmake@latest - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -G "Visual Studio 17 2022" -DCMAKE_SYSTEM_VERSION="10.0" -DDEV_TEST_SYNC=ON -DDEV_WITH_ASAN=ON - & "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=Debug p2pool.vcxproj - - - name: Run p2pool - shell: cmd - run: | - call "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\VC\\Auxiliary\\Build\\vcvarsall.bat" amd64 - cd build/Debug - mkdir data - start python ../../tests/src/stratum_dummy.py 1 - start python ../../tests/src/stratum_dummy.py 2 - start python ../../tests/src/stratum_dummy.py 3 - start python ../../tests/src/mm_server.py 8000 id0 data0 & - start python ../../tests/src/mm_server.py 8001 id1 data1 & - start python ../../tests/src/mm_server.py 8002 id2 data2 & - p2pool.exe ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build/Debug - findstr /C:"Synchronization finished successfully" p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_windows_data_debug_asan - path: | - build/Debug/*.log - build/Debug/data/ - - sync-test-windows-leaks: - - timeout-minutes: 60 - runs-on: windows-2022 - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Setup cmake - uses: lukka/get-cmake@latest - - - name: Build p2pool - run: | - mkdir build - cd build - cmake .. -G "Visual Studio 17 2022" -DCMAKE_SYSTEM_VERSION="10.0" -DDEV_TEST_SYNC=ON -DDEV_TRACK_MEMORY=ON - & "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\amd64\\msbuild" -v:m /m /p:Configuration=RelWithDebInfo p2pool.vcxproj - - - name: Run p2pool - run: | - cd build/RelWithDebInfo - mkdir data - Start-Process python -ArgumentList "../../tests/src/stratum_dummy.py 1" - Start-Process python -ArgumentList "../../tests/src/stratum_dummy.py 2" - Start-Process python -ArgumentList "../../tests/src/stratum_dummy.py 3" - Start-Process python -ArgumentList "../../tests/src/mm_server.py 8000 id0 data0" - Start-Process python -ArgumentList "../../tests/src/mm_server.py 8001 id1 data1" - Start-Process python -ArgumentList "../../tests/src/mm_server.py 8002 id2 data2" - ./p2pool.exe ${{ secrets.TESTNET_NODE_PARAMS }} --wallet 9y9HUSpSZX7j2J5UUngX5nCRezR6mZfLmL2D5JXpmPjYVDCPCCcw6Tab2R55xqPTN2FoQEEDmz99TVdy9EW74mqMUw5xRun --data-api data --local-api --merge-mine 127.0.0.1:8000 test0 --merge-mine 127.0.0.1:8001 test1 --merge-mine 127.0.0.1:8002 test2 --loglevel 6 - - - name: Check p2pool.log - run: | - cd build/RelWithDebInfo - findstr /C:"Synchronization finished successfully" p2pool.log - - - name: Archive p2pool.log - uses: actions/upload-artifact@v4 - with: - name: p2pool_windows_data_leaks - path: | - build/RelWithDebInfo/*.log - build/RelWithDebInfo/data/