Skip to content

MiNiFi-CPP Verify Package #10

MiNiFi-CPP Verify Package

MiNiFi-CPP Verify Package #10

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_KAFKA=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 -DENABLE_COUCHBASE=ON -DDOCKER_BUILD_ONLY=ON
CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
jobs:
rocky-x86-64-build:
name: "Build package (Rocky 8 x86_64)"
runs-on: ubuntu-24.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-x86-64-tar
path: build/nifi-minifi-cpp-*-bin-rockylinux.tar.gz
if-no-files-found: error
rocky-aarch64-build:
name: "Build package (Rocky 8 aarch64)"
runs-on: ubuntu-24.04-arm
timeout-minutes: 180
steps:
- id: checkout
uses: actions/checkout@v4
- name: cache restore
uses: actions/cache/restore@v4
with:
path: ~/.ccache
key: verify-package-arm-ccache-${{github.ref}}-${{github.sha}}
restore-keys: |
verify-package-arm-ccache-${{github.ref}}-
verify-package-arm-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-arm-ccache-${{github.ref}}-${{github.sha}}
- uses: actions/upload-artifact@v4
with:
name: minifi-aarch64-tar
path: build/nifi-minifi-cpp-*-bin-rockylinux.tar.gz
if-no-files-found: error
docker-x86-64-tests:
name: "${{ matrix.platform.name }}"
runs-on: ubuntu-24.04
timeout-minutes: 180
needs: rocky-x86-64-build
strategy:
fail-fast: false
matrix:
platform: [
{ name: "Rocky Linux 8 x86-64",
id: "rocky8",
build_cmd: "make rocky8_from_rocky_package",
verify_cmd: "make docker-verify-rocky8" },
{ name: "Rocky Linux 9 x86-64",
id: "rocky9",
build_cmd: "make rocky9_from_rocky_package",
verify_cmd: "make docker-verify-rocky9" },
{ name: "Ubuntu 22.04 x86-64",
id: "ubuntu_jammy",
build_cmd: "make jammy_from_rocky_package",
verify_cmd: "make docker-verify-jammy" },
{ name: "Ubuntu 24.04 x86-64",
id: "ubuntu_noble",
build_cmd: "make noble_from_rocky_package",
verify_cmd: "make docker-verify-noble" },
{ name: "Debian 11 x86-64",
id: "debian_bullseye",
build_cmd: "make bullseye_from_rocky_package",
verify_cmd: "make docker-verify-bullseye" },
{ name: "Debian 12 x86-64",
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-x86-64-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 }}_x86_64_behavex_output
path: build/behavex_output
docker-aarch64-tests:
name: "${{ matrix.platform.name }}"
runs-on: ubuntu-24.04-arm
timeout-minutes: 180
needs: rocky-aarch64-build
strategy:
fail-fast: false
matrix:
platform: [
{ name: "Rocky Linux 8 aarch64",
id: "rocky8",
build_cmd: "make rocky8_from_rocky_package",
verify_cmd: "make docker-verify-rocky8" },
{ name: "Rocky Linux 9 aarch64",
id: "rocky9",
build_cmd: "make rocky9_from_rocky_package",
verify_cmd: "make docker-verify-rocky9" },
{ name: "Ubuntu 22.04 aarch64",
id: "ubuntu_jammy",
build_cmd: "make jammy_from_rocky_package",
verify_cmd: "make docker-verify-jammy" },
{ name: "Ubuntu 24.04 aarch64",
id: "ubuntu_noble",
build_cmd: "make noble_from_rocky_package",
verify_cmd: "make docker-verify-noble" },
{ name: "Debian 11 aarch64",
id: "debian_bullseye",
build_cmd: "make bullseye_from_rocky_package",
verify_cmd: "make docker-verify-bullseye" },
{ name: "Debian 12 aarch64",
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-aarch64-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 }}_aarch64_behavex_output
path: build/behavex_output