name: C/C++ CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build-ubuntu: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, ubuntu-18.04] 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 - name: Checkout repository uses: actions/checkout@v2 with: submodules: true - name: Build p2pool run: | mkdir build cd build cmake .. make -j2 - name: Build tests run: | cd tests mkdir build cd build cmake .. make -j2 - name: Run tests run: cd tests/build && ./p2pool_tests - name: Archive binary uses: actions/upload-artifact@v2 with: name: p2pool-${{ matrix.os }} path: build/p2pool build-windows-msys2: runs-on: windows-latest defaults: run: shell: msys2 {0} steps: - name: Checkout repository uses: actions/checkout@v2 with: submodules: recursive - name: Setup MSYS2 uses: eine/setup-msys2@v2 with: update: true install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-libuv - name: Build p2pool run: | mkdir build cd build cmake .. -G "Unix Makefiles" make -j2 - name: Build tests run: | cd tests mkdir build cd build cmake .. -G "Unix Makefiles" make -j2 - name: Run tests run: | cd tests/build ./p2pool_tests.exe - name: Archive binary uses: actions/upload-artifact@v2 with: name: p2pool-msys2.exe path: build/p2pool.exe build-windows-msbuild: runs-on: windows-latest steps: - name: Checkout repository uses: actions/checkout@v2 with: submodules: recursive - name: Setup cmake uses: lukka/get-cmake@latest - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.0.3 - name: Build p2pool run: | mkdir build cd build cmake .. -G "Visual Studio 16 2019" msbuild /m /p:Configuration=Release p2pool.vcxproj - name: Build tests run: | cd tests mkdir build cd build cmake .. -G "Visual Studio 16 2019" msbuild /m /p:Configuration=Release p2pool_tests.vcxproj - name: Run tests run: | cd tests/build/Release ./p2pool_tests.exe - name: Archive binary uses: actions/upload-artifact@v2 with: name: p2pool-msbuild.exe path: build/Release/p2pool.exe build-macos: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, macos-11] steps: - name: Checkout repository uses: actions/checkout@v2 with: submodules: recursive - name: Install dependencies run: HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake libuv zmq libpgm - name: Build p2pool run: | mkdir build cd build cmake .. make -j3 - name: Build tests run: | cd tests mkdir build cd build cmake .. make -j3 - name: Run tests run: | cd tests/build ./p2pool_tests - name: Archive binary uses: actions/upload-artifact@v2 with: name: p2pool-${{ matrix.os }} path: build/p2pool