Skip to content

MiNiFi-CPP Verify Package #3

MiNiFi-CPP Verify Package

MiNiFi-CPP Verify Package #3

name: "MiNiFi-CPP Verify Package"
on: [workflow_dispatch]
env:
DOCKER_CMAKE_FLAGS: -DDOCKER_VERIFY_THREAD=3 -DUSE_SHARED_LIBS= -DSTRICT_GSL_CHECKS=AUDIT -DCI_BUILD=ON -DENABLE_AWS=ON -DENABLE_LIBRDKAFKA=ON -DENABLE_MQTT=ON -DENABLE_AZURE=ON -DENABLE_SQL=ON \
-DENABLE_SPLUNK=ON -DENABLE_GCP=ON -DENABLE_OPC=ON -DENABLE_PYTHON_SCRIPTING=ON -DENABLE_LUA_SCRIPTING=ON -DENABLE_KUBERNETES=ON -DENABLE_TEST_PROCESSORS=ON -DENABLE_PROMETHEUS=ON \
-DENABLE_ELASTICSEARCH=OFF -DENABLE_GRAFANA_LOKI=ON -DDOCKER_BUILD_ONLY=ON
CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
jobs:
rocky-build:
name: "Build package (Rocky 8)"
runs-on: ubuntu-22.04
timeout-minutes: 180
steps:
- id: checkout
uses: actions/checkout@v4
- name: cache restore
uses: actions/cache/restore@v4
with:
path: ~/.ccache
key: verify-package-ccache-${{github.ref}}-${{github.sha}}
restore-keys: |
verify-package-ccache-${{github.ref}}-
verify-package-ccache-refs/heads/main-
- id: install_deps
run: |
sudo apt update
sudo apt install -y ccache cmake
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
- id: build
run: |
if [ -d ~/.ccache ]; then mv ~/.ccache .; fi
mkdir build && cd build && cmake ${DOCKER_CMAKE_FLAGS} -DDOCKER_CCACHE_DUMP_LOCATION=${{ env.CCACHE_DIR }} .. && make rocky
- name: cache save
uses: actions/cache/save@v4
if: always()
with:
path: ${{ env.CCACHE_DIR }}
key: verify-package-ccache-${{github.ref}}-${{github.sha}}
- uses: actions/upload-artifact@v4
with:
name: minifi-tar
path: build/nifi-minifi-cpp-*-bin-rockylinux.tar.gz
if-no-files-found: error
docker-tests:
name: "${{ matrix.platform.name }}"
runs-on: ubuntu-20.04
timeout-minutes: 180
needs: rocky-build
strategy:
fail-fast: false
matrix:
platform: [
{ name: "Rocky Linux 8",
id: "rocky8",
build_cmd: "make rocky8_from_rocky_package",
verify_cmd: "make docker-verify-rocky8" },
{ name: "Rocky Linux 9",
id: "rocky9",
build_cmd: "make rocky9_from_rocky_package",
verify_cmd: "make docker-verify-rocky9" },
{ name: "Ubuntu 22.04",
id: "ubuntu_jammy",
build_cmd: "make jammy_from_rocky_package",
verify_cmd: "make docker-verify-jammy" },
{ name: "Ubuntu 24.04",
id: "ubuntu_noble",
build_cmd: "make noble_from_rocky_package",
verify_cmd: "make docker-verify-noble" },
{ name: "Debian 11",
id: "debian_bullseye",
build_cmd: "make bullseye_from_rocky_package",
verify_cmd: "make docker-verify-bullseye" },
{ name: "Debian 12",
id: "debian_bookworm",
build_cmd: "make bookworm_from_rocky_package",
verify_cmd: "make docker-verify-bookworm" },
]
steps:
- id: checkout
uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: minifi-tar
path: build
- id: install_deps
run: |
sudo apt update
sudo apt install -y python3-virtualenv
- run: cd build && cmake ${DOCKER_CMAKE_FLAGS} .. \
&& ${{ matrix.platform.build_cmd }} && ${{ matrix.platform.verify_cmd }}
- name: Test Reporter
if: always()
uses: phoenix-actions/test-reporting@v15
with:
name: "${{ matrix.platform.name }}"
path: build/behavex_output/behave/*.xml
reporter: java-junit
output-to: 'step-summary'
list-tests: 'failed'
list-suites: 'failed'
- name: Upload artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform.id }}_behavex_output
path: build/behavex_output
docker-python-tests:
name: "${{ matrix.platform.name }}"
runs-on: ubuntu-20.04
timeout-minutes: 180
needs: rocky-build
strategy:
fail-fast: false
matrix:
platform: [
{ name: "Rocky Linux 8 Python",
id: "rocky8",
build_cmd: "make rocky8_py_from_rocky_package",
verify_cmd: "make docker-verify-rocky8_py" },
{ name: "Rocky Linux 9 Python",
id: "rocky9",
build_cmd: "make rocky9_py_from_rocky_package",
verify_cmd: "make docker-verify-rocky9_py" },
{ name: "Patchelf-ed Ubuntu 22.04 Python",
id: "patchelfed_ubuntu22.04",
build_cmd: "make patched_jammy_py_from_rocky_package",
verify_cmd: "make docker-verify-patched_jammy_py" },
{ name: "Patchelf-ed Debian 11 Python",
id: "patchelfed_debian11",
build_cmd: "make patched_bullseye_py_from_rocky_package",
verify_cmd: "make docker-verify-patched_bullseye_py" },
{ name: "Ubuntu 22.04 with Anaconda Python",
id: "ubuntu22.04_anaconda",
build_cmd: "make jammy_py_from_rocky_package && make conda_jammy_py_from_rocky_package",
verify_cmd: "make docker-verify-conda_jammy_py" },
{ name: "Rocky Linux 9 in virtualenv Python",
id: "rocky9_venv",
build_cmd: "make rocky9_py_from_rocky_package && make venv_rocky9_py_from_rocky_package",
verify_cmd: "make docker-verify-venv_rocky9_py" }
]
steps:
- id: checkout
uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: minifi-tar
path: build
- id: install_deps
run: |
sudo apt update
sudo apt install -y python3-virtualenv
- run: cd build && cmake -DENABLE_PYTHON_SCRIPTING=ON -DDOCKER_BUILD_ONLY=ON .. \
&& ${{ matrix.platform.build_cmd }} && ${{ matrix.platform.verify_cmd }}
- name: Test Reporter
if: always()
uses: phoenix-actions/test-reporting@v15
with:
name: "${{ matrix.platform.name }}"
path: build/behavex_output/behave/*.xml
reporter: java-junit
output-to: 'step-summary'
list-tests: 'failed'
list-suites: 'failed'
- name: Upload artifact
if: failure()
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform.id }}_behavex_output
path: build/behavex_output