mirror of
https://github.com/XRPLF/clio.git
synced 2026-04-29 15:37:53 +00:00
install gcovr exclude src file and adjust folder revert other jobs fix format issue add cov info to lib update lib add lib
207 lines
5.8 KiB
YAML
207 lines
5.8 KiB
YAML
name: Build Clio
|
|
on:
|
|
push:
|
|
branches: [master, release/*, develop, develop-next]
|
|
pull_request:
|
|
branches: [master, release/*, develop, develop-next]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Run clang-format
|
|
uses: ./.github/actions/lint
|
|
|
|
build_clio:
|
|
name: Build Clio
|
|
runs-on: [self-hosted, Linux]
|
|
needs: lint
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
type:
|
|
- suffix: deb
|
|
image: rippleci/clio-dpkg-builder:2022-09-17
|
|
script: dpkg
|
|
- suffix: rpm
|
|
image: rippleci/clio-rpm-builder:2022-09-17
|
|
script: rpm
|
|
|
|
container:
|
|
image: ${{ matrix.type.image }}
|
|
# options: --user 1001
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
path: clio
|
|
fetch-depth: 0
|
|
|
|
- name: Clone Clio packaging repo
|
|
uses: actions/checkout@v3
|
|
with:
|
|
path: clio-packages
|
|
repository: XRPLF/clio-packages
|
|
ref: main
|
|
|
|
- name: Build
|
|
shell: bash
|
|
run: |
|
|
export CLIO_ROOT=$(realpath clio)
|
|
if [ ${{ matrix.type.suffix }} == "rpm" ]; then
|
|
source /opt/rh/devtoolset-11/enable
|
|
fi
|
|
cmake -S clio-packages -B clio-packages/build -DCLIO_ROOT=$CLIO_ROOT
|
|
cmake --build clio-packages/build --parallel $(nproc)
|
|
cp ./clio-packages/build/clio-prefix/src/clio-build/clio_tests .
|
|
mv ./clio-packages/build/*.${{ matrix.type.suffix }} .
|
|
- name: Artifact packages
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: clio_${{ matrix.type.suffix }}_packages
|
|
path: ${{ github.workspace }}/*.${{ matrix.type.suffix }}
|
|
|
|
- name: Artifact clio_tests
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: clio_tests-${{ matrix.type.suffix }}
|
|
path: ${{ github.workspace }}/clio_tests
|
|
|
|
build_dev:
|
|
name: ${{ matrix.os.name }} test
|
|
needs: lint
|
|
continue-on-error: ${{ matrix.os.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- name: macos-11
|
|
experimental: true
|
|
- name: macos-12
|
|
experimental: false
|
|
runs-on: ${{ matrix.os.name }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
path: clio
|
|
|
|
- name: Check Boost cache
|
|
id: boost
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: boost
|
|
key: ${{ runner.os }}-boost
|
|
|
|
- name: Build boost
|
|
if: steps.boost.outputs.cache-hit != 'true'
|
|
run: |
|
|
curl -s -OJL "https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz"
|
|
tar zxf boost_1_77_0.tar.gz
|
|
mv boost_1_77_0 boost
|
|
cd boost
|
|
./bootstrap.sh
|
|
if [[ ${{ matrix.os.name }} =~ mac ]];then
|
|
mac_flags='cxxflags="-std=c++14"'
|
|
fi
|
|
./b2 ${mac_flags}
|
|
- name: install deps
|
|
run: |
|
|
if [[ ${{ matrix.os.name }} =~ mac ]];then
|
|
brew install pkg-config protobuf openssl ninja cassandra-cpp-driver bison
|
|
elif [[ ${{matrix.os.name }} =~ ubuntu ]];then
|
|
sudo apt-get -y install git pkg-config protobuf-compiler libprotobuf-dev libssl-dev wget build-essential doxygen bison flex autoconf clang-format
|
|
fi
|
|
- name: Build clio
|
|
run: |
|
|
export BOOST_ROOT=$(pwd)/boost
|
|
cd clio
|
|
cmake -B build
|
|
if ! cmake --build build -j$(nproc); then
|
|
echo '# 🔥${{ matrix.os.name }}🔥 failed!💥' >> $GITHUB_STEP_SUMMARY
|
|
fi
|
|
|
|
test_clio:
|
|
name: Test Clio
|
|
runs-on: [self-hosted, Linux]
|
|
needs: build_clio
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
suffix: [rpm, deb]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Get clio_tests artifact
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: clio_tests-${{ matrix.suffix }}
|
|
|
|
- name: Run tests
|
|
timeout-minutes: 10
|
|
uses: ./.github/actions/test
|
|
|
|
code_coverage:
|
|
name: Build on Linux and code coverage
|
|
needs: lint
|
|
continue-on-error: false
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
path: clio
|
|
|
|
- name: Check Boost cache
|
|
id: boost
|
|
uses: actions/cache@v3
|
|
with:
|
|
path: boost
|
|
key: ${{ runner.os }}-boost
|
|
|
|
- name: Build boost
|
|
if: steps.boost.outputs.cache-hit != 'true'
|
|
run: |
|
|
curl -s -OJL "https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz"
|
|
tar zxf boost_1_77_0.tar.gz
|
|
mv boost_1_77_0 boost
|
|
cd boost
|
|
./bootstrap.sh
|
|
./b2
|
|
|
|
- name: install deps
|
|
run: |
|
|
sudo apt-get -y install git pkg-config protobuf-compiler libprotobuf-dev libssl-dev wget build-essential doxygen bison flex autoconf clang-format gcovr
|
|
|
|
- name: Build clio
|
|
run: |
|
|
export BOOST_ROOT=$(pwd)/boost
|
|
cd clio
|
|
cmake -B build -DCODE_COVERAGE=on -DTEST_PARAMETER='--gtest_filter="-Backend*"'
|
|
if ! cmake --build build -j$(nproc); then
|
|
echo '# 🔥Ubuntu build🔥 failed!💥' >> $GITHUB_STEP_SUMMARY
|
|
fi
|
|
cd build
|
|
make clio_tests-ccov
|
|
|
|
- name: Code Coverage Summary Report
|
|
uses: irongut/CodeCoverageSummary@v1.2.0
|
|
with:
|
|
filename: clio/build/clio_tests-gcc-cov/out.xml
|
|
badge: true
|
|
output: both
|
|
format: markdown
|
|
|
|
- name: Save PR number and ccov report
|
|
run: |
|
|
mkdir -p ./UnitTestCoverage
|
|
echo ${{ github.event.number }} > ./UnitTestCoverage/NR
|
|
cp clio/build/clio_tests-gcc-cov/report.html ./UnitTestCoverage/report.html
|
|
cp code-coverage-results.md ./UnitTestCoverage/out.md
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: UnitTestCoverage
|
|
path: UnitTestCoverage/
|