added missing ident procedure (#115) #538
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and run tests | |
on: | |
schedule: | |
- cron: '0 0 * * 0' | |
push: | |
branches: | |
- main | |
- 'apl-fy[0-9][0-9]' | |
pull_request: {} # any target | |
jobs: | |
unit-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-22.04', 'ubuntu-24.04', 'centos-9'] | |
deps: ['full', 'minimal'] | |
name: Unit Test (${{matrix.os}} deps=${{matrix.deps}}) | |
runs-on: ${{ matrix.os == 'centos-9' && 'ubuntu-24.04' || matrix.os }} | |
container: ${{ matrix.os == 'centos-9' && 'quay.io/centos/centos:stream9' || null }} | |
steps: | |
- name: Set up OS | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get update && \ | |
sudo apt-get install -y \ | |
cmake ninja-build \ | |
ruby pkg-config build-essential patch autoconf libtool \ | |
${{matrix.deps=='full' && 'flex libfl-dev bison libpcre2-dev civetweb libcivetweb-dev libssl-dev libcjson-dev libsystemd-dev' || ''}} \ | |
valgrind gcovr xmlstarlet | |
- name: Set up OS | |
if: startsWith(matrix.os, 'centos') | |
run: | | |
dnf config-manager --set-enabled crb | |
dnf install -y epel-release | |
dnf install -y \ | |
git rsync \ | |
cmake ninja-build \ | |
ruby pkg-config gcc gcc-c++ ccache patch autoconf libtool \ | |
${{matrix.deps=='full' && 'flex libfl-static bison pcre2-devel civetweb civetweb-devel openssl-devel cjson-devel systemd-devel' || ''}} \ | |
valgrind xmlstarlet python3-pip | |
pip3 install gcovr | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
create-symlink: true | |
- name: Dependencies | |
env: | |
DEPS_BUILD_ION: ${{matrix.deps=='full' && '1' || '0'}} | |
run: ./deps.sh | |
- name: Prep | |
run: | | |
./prep.sh -DBUILD_DOCS_API=OFF -DBUILD_DOCS_MAN=OFF -DBUILD_TESTING=ON \ | |
-DARI_TEXT_PARSE=${{matrix.deps=='full' && 'ON' || 'OFF'}} \ | |
-DTRANSPORT_ION_BP=${{matrix.deps=='full' && 'ON' || 'OFF'}} | |
- name: Build | |
run: ./build.sh | |
- name: Test | |
run: ./build.sh check | |
- name: Collect coverage | |
run: ./build.sh coverage | |
- name: Archive coverage | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{github.job}}-${{matrix.os}}-${{matrix.deps}}-coverage | |
path: build/default/coverage* | |
- name: Report coverage | |
run: | | |
SRC_COV_PERC=$(xmlstarlet sel -t -v 'floor(/coverage/@line-rate * 100)' -n build/default/coverage-cace-xml.xml) | |
echo "CACE coverage: ${SRC_COV_PERC}%" >> $GITHUB_STEP_SUMMARY | |
SRC_COV_PERC=$(xmlstarlet sel -t -v 'floor(/coverage/@line-rate * 100)' -n build/default/coverage-refda-xml.xml) | |
echo "REFDA coverage: ${SRC_COV_PERC}%" >> $GITHUB_STEP_SUMMARY | |
item-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-24.04', 'centos-9'] | |
name: Built-Item Test (${{matrix.os}}) | |
runs-on: ${{ matrix.os == 'centos-9' && 'ubuntu-24.04' || matrix.os }} | |
container: ${{ matrix.os == 'centos-9' && 'quay.io/centos/centos:stream9' || null }} | |
steps: | |
- name: Set up OS | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get update && \ | |
sudo apt-get install -y \ | |
cmake ninja-build \ | |
ruby pkg-config build-essential patch autoconf libtool \ | |
flex libfl-dev bison libpcre2-dev civetweb libcivetweb-dev libssl-dev libcjson-dev libsystemd-dev \ | |
binutils \ | |
valgrind gcovr xmlstarlet python3-venv | |
- name: Set up OS | |
if: startsWith(matrix.os, 'centos') | |
run: | | |
dnf config-manager --set-enabled crb | |
dnf install -y epel-release | |
dnf install -y \ | |
git rsync \ | |
cmake ninja-build \ | |
ruby pkg-config gcc gcc-c++ ccache patch autoconf libtool \ | |
flex libfl-static bison pcre2-devel civetweb civetweb-devel openssl-devel cjson-devel systemd-devel \ | |
binutils \ | |
valgrind xmlstarlet python3-pip \ | |
python3.11 | |
pip3 install gcovr | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
create-symlink: true | |
- name: Dependencies | |
run: ./deps.sh | |
- name: Prep | |
run: ./prep.sh -DBUILD_DOCS_API=OFF -DBUILD_DOCS_MAN=OFF -DBUILD_TESTING=OFF | |
- name: Build | |
run: ./build.sh | |
- name: Install | |
run: ./build.sh install | |
- name: Check symbols | |
run: ./check_symbols.py cace refda refdm | |
- name: Test | |
env: | |
PYTHON: ${{ matrix.os == 'centos-9' && 'python3.11' || 'python3' }} | |
run: ./item-test/run.sh | |
integration-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
transport: ['socket', 'ion'] | |
name: Integration Test (${{matrix.transport}}) | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Start | |
run: ./integration-test-${{matrix.transport}}/run.sh start | |
- name: Test | |
run: ./integration-test-${{matrix.transport}}/run.sh check | |
- name: Stop | |
if: always() | |
run: ./integration-test-${{matrix.transport}}/run.sh stop |