146 lines
5.5 KiB
YAML
146 lines
5.5 KiB
YAML
name: C/C++ CI (Gitea)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-alpine-static:
|
|
timeout-minutes: 90
|
|
runs-on: ubuntu-24.04
|
|
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- {arch: x86_64, branch: latest-stable, flags: "-ffunction-sections"}
|
|
- {arch: aarch64, branch: latest-stable, flags: "-ffunction-sections -mfix-cortex-a53-835769 -mfix-cortex-a53-843419"}
|
|
- {arch: riscv64, branch: latest-stable, flags: "-ffunction-sections"}
|
|
|
|
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 xz
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Build libcurl
|
|
shell: alpine.sh {0}
|
|
run: |
|
|
cd external/src/curl
|
|
cmake . -DCMAKE_BUILD_TYPE=Release -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 -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF -DCURL_ZLIB=OFF -DCURL_BROTLI=OFF -DCURL_ZSTD=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 -DCURL_DISABLE_WEBSOCKETS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF -DCURL_DISABLE_TESTS=ON -DUSE_NGHTTP2=OFF -DBUILD_EXAMPLES=OFF -DP2POOL_BORINGSSL=ON -DCURL_DISABLE_SRP=ON -DCURL_DISABLE_AWS=ON -DCURL_DISABLE_BASIC_AUTH=ON -DCURL_DISABLE_BEARER_AUTH=ON -DCURL_DISABLE_KERBEROS_AUTH=ON -DCURL_DISABLE_NEGOTIATE_AUTH=ON -DOPENSSL_INCLUDE_DIR=../grpc/third_party/boringssl-with-bazel/include
|
|
make -j$(nproc)
|
|
|
|
- name: Build libuv
|
|
shell: alpine.sh {0}
|
|
run: |
|
|
cd external/src/libuv
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -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_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5" -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_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5" -DCMAKE_C_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DCMAKE_CXX_FLAGS='${{ matrix.config.flags }} -Wl,-s -Wl,--gc-sections' -DWITH_GRPC=OFF -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_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5" -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) p2pool_tests
|
|
|
|
- name: Run tests
|
|
shell: alpine.sh {0}
|
|
run: |
|
|
cd tests/build
|
|
unxz *.xz
|
|
./p2pool_tests
|
|
|
|
- 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: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev xz-utils
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Build p2pool
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5"
|
|
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_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5"
|
|
make -j$(nproc) p2pool_tests
|
|
|
|
- name: Run tests
|
|
run: |
|
|
cd tests/build
|
|
unxz *.xz
|
|
./p2pool_tests
|
|
|
|
- name: Archive binary
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: p2pool-ubuntu
|
|
path: build/p2pool
|