2023-12-05 10:05:36 +08:00
|
|
|
name: rpcrypto-build
|
|
|
|
on:
|
2023-12-05 16:44:08 +08:00
|
|
|
push:
|
|
|
|
paths:
|
|
|
|
- '.gitea/workflows/build.yaml'
|
|
|
|
- 'src/**'
|
|
|
|
- 'tests/**'
|
|
|
|
- 'CMakeLists.txt'
|
|
|
|
- 'cmake/**'
|
|
|
|
pull_request:
|
|
|
|
paths:
|
|
|
|
- '.gitea/workflows/build.yaml'
|
|
|
|
- 'src/**'
|
|
|
|
- 'tests/**'
|
|
|
|
- 'CMakeLists.txt'
|
|
|
|
- 'cmake/**'
|
2023-12-05 10:05:36 +08:00
|
|
|
concurrency:
|
|
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build_type:
|
|
|
|
- Debug
|
|
|
|
- Release
|
|
|
|
toolchain:
|
2023-12-05 17:12:51 +08:00
|
|
|
# - host-afl.toolchain.cmake
|
2023-12-05 10:05:36 +08:00
|
|
|
- hisiv510.toolchain.cmake
|
|
|
|
- himix200.toolchain.cmake
|
|
|
|
- mipsel-openwrt-linux-musl.toolchain.cmake
|
|
|
|
- mipsel-openwrt-linux.toolchain.cmake
|
|
|
|
runs-on: ubuntu-20.04
|
|
|
|
env:
|
|
|
|
build_command: |
|
|
|
|
cd ${{ github.workspace }}
|
|
|
|
pwd
|
|
|
|
ls -alh
|
|
|
|
# /bin/bash scripts/install-flatc.sh
|
|
|
|
cmake . -Bbuild \
|
|
|
|
-DCMAKE_TOOLCHAIN_FILE=toolchains/${{ matrix.toolchain }} \
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
|
|
|
|
-DCMAKE_INSTALL_PREFIX=./install \
|
2023-12-05 15:52:30 +08:00
|
|
|
-DCMAKE_VERBOSE_MAKEFILE=ON ${CUSTOM_CMAKE_ARGS}
|
2023-12-05 10:05:36 +08:00
|
|
|
cmake --build build --config ${{ matrix.build_type }} --target all -- -j `nproc`
|
|
|
|
cmake --build build --config ${{ matrix.build_type }} --target install
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
2023-12-05 15:55:33 +08:00
|
|
|
with:
|
|
|
|
submodules: true
|
|
|
|
fetch-depth: 1
|
|
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
2023-12-05 15:56:51 +08:00
|
|
|
- name: build-host
|
2023-12-05 10:05:36 +08:00
|
|
|
if: matrix.toolchain == 'host.toolchain.cmake'
|
|
|
|
run: |
|
2023-12-05 14:31:13 +08:00
|
|
|
sudo apt-get update -y
|
|
|
|
sudo apt-get install -y libarchive-dev libssl-dev autoconf libtool pkg-config cmake make gcc g++
|
2023-12-05 15:52:30 +08:00
|
|
|
${{ env.build_command }}
|
2023-12-05 15:46:14 +08:00
|
|
|
|
|
|
|
- name: run_gtest
|
|
|
|
if: matrix.toolchain == 'host.toolchain.cmake'
|
|
|
|
run: |
|
|
|
|
cd ${{ github.workspace }}
|
|
|
|
cmake --build build --config ${{ matrix.build_type }} --target test
|
2023-12-05 10:05:36 +08:00
|
|
|
|
2023-12-05 15:56:51 +08:00
|
|
|
- name: build-host-afl
|
2023-12-05 10:05:36 +08:00
|
|
|
if: matrix.toolchain == 'host-afl.toolchain.cmake'
|
|
|
|
run: |
|
2023-12-05 14:43:11 +08:00
|
|
|
sudo apt-get update -y
|
|
|
|
sudo apt-get install -y libarchive-dev libssl-dev autoconf libtool pkg-config afl++ cmake make gcc g++
|
2023-12-05 10:05:36 +08:00
|
|
|
export AFL_LLVM_LAF_ALL=1
|
|
|
|
export CC=/usr/bin/afl-clang-fast
|
|
|
|
export CXX=/usr/bin/afl-clang-fast++
|
2023-12-05 15:52:30 +08:00
|
|
|
export CUSTOM_CMAKE_ARGS="-DULIB_BUILD_TESTS=ON"
|
2023-12-05 10:05:36 +08:00
|
|
|
${{ env.build_command }}
|
|
|
|
|
|
|
|
- name: build-in-centos
|
|
|
|
uses: addnab/docker-run-action@v3
|
|
|
|
if: matrix.toolchain != 'host.toolchain.cmake' && matrix.toolchain != 'host-afl.toolchain.cmake'
|
|
|
|
with:
|
|
|
|
image: tqcq/hisi:centos
|
|
|
|
options: --rm --volumes-from ${{ env.JOB_CONTAINER_NAME }}
|
|
|
|
run: |
|
|
|
|
yum clean all
|
|
|
|
yum install -y libarchive cmake make gcc gcc-c++ openssl-devel autoconf libtool pkg-config
|
|
|
|
${{ env.build_command }}
|