name: "MiNiFi-CPP CI"
on: [push, pull_request, 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=ON -DENABLE_GRAFANA_LOKI=ON -DENABLE_COUCHBASE=ON -DENABLE_LLAMACPP=ON -DDOCKER_BUILD_ONLY=ON -DMINIFI_PERFORMANCE_TESTS=ON
  SCCACHE_GHA_ENABLE: true
  CCACHE_DIR: ${{ GITHUB.WORKSPACE }}/.ccache
jobs:
  macos_xcode:
    name: "macOS 15 aarch64"
    runs-on: macos-15
    timeout-minutes: 180
    env:
      MACOS_MINIFI_OPTIONS: >-
        -DCMAKE_BUILD_TYPE=Release
        -DCI_BUILD=ON
        -DCUSTOM_MALLOC=OFF
        -DDOCKER_BUILD_ONLY=OFF
        -DDOCKER_PUSH=OFF
        -DDOCKER_SKIP_TESTS=ON
        -DENABLE_ALL=OFF
        -DENABLE_AWS=ON
        -DENABLE_AZURE=ON
        -DENABLE_BUSTACHE=OFF
        -DENABLE_BZIP2=ON
        -DENABLE_CIVET=ON
        -DENABLE_CONTROLLER=ON
        -DENABLE_COUCHBASE=ON
        -DENABLE_ELASTICSEARCH=ON
        -DENABLE_ENCRYPT_CONFIG=ON
        -DENABLE_EXPRESSION_LANGUAGE=ON
        -DENABLE_GCP=ON
        -DENABLE_KUBERNETES=ON
        -DENABLE_LIBARCHIVE=ON
        -DENABLE_LLAMACPP=ON
        -DENABLE_KAFKA=ON
        -DENABLE_LUA_SCRIPTING=ON
        -DENABLE_LZMA=ON
        -DENABLE_MQTT=ON
        -DENABLE_OPC=ON
        -DENABLE_OPENCV=ON
        -DENABLE_OPS=ON
        -DENABLE_PROMETHEUS=ON
        -DENABLE_PYTHON_SCRIPTING=ON
        -DENABLE_ROCKSDB=ON
        -DENABLE_SFTP=OFF
        -DENABLE_SPLUNK=ON
        -DENABLE_SQL=ON
        -DENABLE_TEST_PROCESSORS=OFF
        -DFORCE_COLORED_OUTPUT=OFF
        -DLIBC_STATIC=OFF
        -DMINIFI_ADVANCED_ASAN_BUILD=OFF
        -DMINIFI_ADVANCED_CODE_COVERAGE=OFF
        -DMINIFI_FAIL_ON_WARNINGS=OFF
        -DMINIFI_USE_REAL_ODBC_TEST_DRIVER=ON
        -DPORTABLE=ON
        -DSKIP_TESTS=OFF
        -DUSE_SHARED_LIBS=ON
        -DMINIFI_PERFORMANCE_TESTS=ON
    steps:
      - id: checkout
        uses: actions/checkout@v4
      - name: cache restore
        uses: actions/cache/restore@v4
        with:
          path: ${{ env.CCACHE_DIR }}
          key: macos-arm-xcode-ccache-${{github.ref}}-${{github.sha}}
          restore-keys: |
            macos-arm-xcode-ccache-${{github.ref}}-
            macos-arm-xcode-ccache-refs/heads/main-
      - id: install_dependencies
        run: |
          brew update
          brew install ossp-uuid bison flex ccache sqliteodbc automake autoconf ninja
      - id: setup_env
        name: setup enviroment
        run: |
          echo "PATH=/opt/homebrew/opt/ccache:/opt/homebrew/opt/ccache/bin:/opt/homebrew/opt/ccache/libexec:$PATH" >> $GITHUB_ENV
          echo "DYLD_LIBRARY_PATH=$(brew --prefix)/lib" >> $GITHUB_ENV
          echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null
      - name: build
        run: |
          python -m venv venv && source venv/bin/activate && pip install -r requirements.txt && python main.py --noninteractive --skip-compiler-install --cmake-options="-DCMAKE_C_FLAGS=${CPPFLAGS} ${CFLAGS} -DCMAKE_CXX_FLAGS=${CPPFLAGS} ${CXXFLAGS}" --minifi-options="${MACOS_MINIFI_OPTIONS}"
        working-directory: bootstrap
      - name: cache save
        uses: actions/cache/save@v4
        if: always()
        with:
          path: ${{ env.CCACHE_DIR }}
          key: macos-arm-xcode-ccache-${{github.ref}}-${{github.sha}}
      - name: test
        id: test
        run: |
          # Set core file size limit to unlimited
          ulimit -c unlimited
          ctest --timeout 300 -j4 --output-on-failure --timeout 300 -LE performance
        working-directory: build
      - name: check-cores
        if: ${{ failure() && steps.test.conclusion == 'failure' }}
        run: |
          if [ "$(ls -A /cores)" ]; then echo "CORES_EXIST=true" >> $GITHUB_ENV; fi
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: macos-coredumps
          path: /cores
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: macos-binaries
          path: build/bin
  windows_VS2022:
    name: "Windows Server 2025 x86_64"
    runs-on: windows-2025
    timeout-minutes: 240
    env:
      WINDOWS_MINIFI_OPTIONS: >-
        -DCMAKE_BUILD_TYPE=Release
        -DBUILD_ROCKSDB=ON
        -DBUILD_SHARED_LIBS=OFF
        -DCI_BUILD=ON
        -DCUSTOM_MALLOC=OFF
        -DDOCKER_BUILD_ONLY=OFF
        -DDOCKER_PUSH=OFF
        -DDOCKER_SKIP_TESTS=ON
        -DENABLE_ALL=OFF
        -DENABLE_AWS=ON
        -DENABLE_AZURE=ON
        -DENABLE_BUSTACHE=OFF
        -DENABLE_BZIP2=ON
        -DENABLE_CIVET=ON
        -DENABLE_CONTROLLER=ON
        -DENABLE_COUCHBASE=ON
        -DENABLE_COVERAGE=
        -DENABLE_ELASTICSEARCH=ON
        -DENABLE_ENCRYPT_CONFIG=ON
        -DENABLE_EXPRESSION_LANGUAGE=ON
        -DENABLE_GCP=ON
        -DENABLE_GRAFANA_LOKI=ON
        -DENABLE_KUBERNETES=ON
        -DENABLE_LIBARCHIVE=ON
        -DENABLE_KAFKA=ON
        -DENABLE_LLAMACPP=ON
        -DENABLE_LUA_SCRIPTING=ON
        -DENABLE_LZMA=ON
        -DENABLE_MQTT=ON
        -DENABLE_OPC=ON
        -DENABLE_OPENCV=OFF
        -DENABLE_OPS=ON
        -DENABLE_PDH=ON
        -DENABLE_PROMETHEUS=ON
        -DENABLE_PYTHON_SCRIPTING=ON
        -DENABLE_ROCKSDB=ON
        -DENABLE_SFTP=OFF
        -DENABLE_SMB=ON
        -DENABLE_SPLUNK=ON
        -DENABLE_SQL=ON
        -DENABLE_TEST_PROCESSORS=OFF
        -DENABLE_WEL=ON
        -DFORCE_COLORED_OUTPUT=ON
        -DINSTALLER_MERGE_MODULES=OFF
        -DMINIFI_FAIL_ON_WARNINGS=ON
        -DMSI_REDISTRIBUTE_UCRT_NONASL=OFF
        -DPORTABLE=ON
        -DSKIP_TESTS=OFF
        -DSTATIC_BUILD=ON
        -DMINIFI_USE_REAL_ODBC_TEST_DRIVER=ON
        -DUSE_SHARED_LIBS=OFF
        -DMINIFI_PERFORMANCE_TESTS=ON
    steps:
      - name: Support longpaths
        run: git config --system core.longpaths true
      - name: Checkout project
        uses: actions/checkout@v4
      - name: Restore cache
        uses: actions/cache/restore@v4
        with:
          path: ~/AppData/Local/Mozilla/sccache/cache
          key: ${{ runner.os }}-2022-sccache-${{ github.ref }}-${{ github.sha }}
          restore-keys: |
            ${{ runner.os }}-2022-sccache-${{ github.ref }}
            ${{ runner.os }}-2022-sccache-refs/heads/main
            ${{ runner.os }}-2022-sccache
      - name: Run sccache-cache
        uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad  # v0.0.9
      - name: Set up Python
        run: choco -y install python & refreshenv
        shell: cmd
      - name: Install sqliteodbc driver
        run: |
          Invoke-WebRequest -Uri "http://www.ch-werner.de/sqliteodbc/sqliteodbc_w64.exe" -OutFile "sqliteodbc_w64.exe"
          if ((Get-FileHash 'sqliteodbc_w64.exe').Hash -ne "a4804e4f54f42c721df1323c5fcac101a8c7a577e7f20979227324ceab572d51") {Write "Hash mismatch"; Exit 1}
          Start-Process -FilePath ".\sqliteodbc_w64.exe" -ArgumentList "/S" -Wait
        shell: powershell
      - name: Add sccache to path
        run: '[Environment]::SetEnvironmentVariable("PATH", [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine) + ";" + (Split-Path -Path $env:SCCACHE_PATH -Parent), [EnvironmentVariableTarget]::Machine);'
        shell: powershell
      - name: build
        run: |
          python -m venv venv & venv\Scripts\activate & pip install -r requirements.txt & python main.py --noninteractive --skip-compiler-install --minifi-options="%WINDOWS_MINIFI_OPTIONS%" --cmake-options="-DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache"
        shell: cmd
        working-directory: bootstrap
      - name: Save cache
        uses: actions/cache/save@v4
        if: always()
        with:
          path: ~/AppData/Local/Mozilla/sccache/cache
          key: ${{ runner.os }}-2022-sccache-${{ github.ref }}-${{ github.sha }}
      - name: Run tests
        run: ctest --timeout 300 --parallel %NUMBER_OF_PROCESSORS% -C Release --output-on-failure -LE performance
        shell: cmd
        working-directory: ./build
      - name: Upload artifact
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: cpack_error
          path: D:/a/nifi-minifi-cpp/nifi-minifi-cpp/build/_CPack_Packages/win64/WIX/wix.log
  ubuntu_22_04_clang_arm:
    name: "Ubuntu 22.04 clang aarch64"
    runs-on: ubuntu-22.04-arm
    timeout-minutes: 240
    env:
      UBUNTU_CLANG_MINIFI_OPTIONS: >-
        -DCMAKE_BUILD_TYPE=RelWithDebInfo
        -DCI_BUILD=OFF
        -DCUSTOM_MALLOC=OFF
        -DDOCKER_BUILD_ONLY=OFF
        -DDOCKER_PUSH=OFF
        -DDOCKER_SKIP_TESTS=ON
        -DENABLE_ALL=OFF
        -DENABLE_AWS=ON
        -DENABLE_AZURE=ON
        -DENABLE_BUSTACHE=ON
        -DENABLE_BZIP2=ON
        -DENABLE_CIVET=ON
        -DENABLE_CONTROLLER=ON
        -DENABLE_COUCHBASE=ON
        -DENABLE_ELASTICSEARCH=ON
        -DENABLE_ENCRYPT_CONFIG=ON
        -DENABLE_EXPRESSION_LANGUAGE=ON
        -DENABLE_EXECUTE_PROCESS=ON
        -DENABLE_GCP=ON
        -DENABLE_GRAFANA_LOKI=ON
        -DENABLE_KUBERNETES=ON
        -DENABLE_LIBARCHIVE=ON
        -DENABLE_LLAMACPP=ON
        -DENABLE_KAFKA=ON
        -DENABLE_LUA_SCRIPTING=ON
        -DENABLE_LZMA=ON
        -DENABLE_MQTT=ON
        -DENABLE_OPC=ON
        -DENABLE_OPENCV=ON
        -DENABLE_OPS=ON
        -DENABLE_PROCFS=ON
        -DENABLE_PROMETHEUS=ON
        -DENABLE_PYTHON_SCRIPTING=ON
        -DENABLE_ROCKSDB=ON
        -DENABLE_SFTP=ON
        -DENABLE_SPLUNK=ON
        -DENABLE_SQL=ON
        -DENABLE_SYSTEMD=ON
        -DENABLE_TEST_PROCESSORS=OFF
        -DFORCE_COLORED_OUTPUT=ON
        -DMINIFI_FAIL_ON_WARNINGS=ON
        -DPORTABLE=ON
        -DSKIP_TESTS=OFF
        -DMINIFI_USE_REAL_ODBC_TEST_DRIVER=OFF
        -DUSE_SHARED_LIBS=ON
        -DMINIFI_PERFORMANCE_TESTS=ON
    steps:
      - id: checkout
        uses: actions/checkout@v4
      - name: cache restore
        uses: actions/cache/restore@v4
        with:
          path: ${{ env.CCACHE_DIR }}
          key: ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-${{github.sha}}
          restore-keys: |
            ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-
            ubuntu-22.04-arm-all-clang-ccache-refs/heads/main-
      - id: install_deps
        run: |
          wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
          echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" | sudo tee -a /etc/apt/sources.list
          echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy main" | sudo tee -a /etc/apt/sources.list
          echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" | sudo tee -a /etc/apt/sources.list
          echo "deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" | sudo tee -a /etc/apt/sources.list
          sudo apt update
          sudo apt install -y ccache libfl-dev clang-20 clang-tidy-20 libc++-20-dev libc++abi-20-dev libsqliteodbc parallel
          echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
          echo -e "127.0.0.1\t$HOSTNAME" | sudo tee -a /etc/hosts > /dev/null
      - id: free_disk_space
        run: |
          # We can gain additional disk space on the Ubuntu runners thanks to these suggestions:
          # https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
          # https://github.com/actions/runner-images/issues/2606#issuecomment-772683150
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /usr/local/lib/android
          sudo rm -rf /opt/ghc
          sudo rm -rf "/usr/local/share/boost"
          sudo rm -rf "$AGENT_TOOLSDIRECTORY"
      - name: build
        run: |
          export CC=clang-20
          export CXX=clang++-20
          export CXXFLAGS="-stdlib=libc++"
          export LDFLAGS="-stdlib=libc++"
          python3 -m venv venv && source venv/bin/activate \
            && pip install -r requirements.txt \
            && python main.py --noninteractive --skip-compiler-install --cmake-options="-DSTRICT_GSL_CHECKS=AUDIT -DCMAKE_EXPORT_COMPILE_COMMANDS=ON" --minifi-options="${UBUNTU_CLANG_MINIFI_OPTIONS}"
        working-directory: bootstrap
      - id: cache_save
        uses: actions/cache/save@v4
        if: always()
        with:
          path: ${{ env.CCACHE_DIR }}
          key: ubuntu-22.04-arm-all-clang-ccache-${{github.ref}}-${{github.sha}}
      - name: test
        id: test
        run: |
          # Set core file size limit to unlimited
          ulimit -c unlimited
          ctest --timeout 300 -j$(nproc) --output-on-failure -LE performance
        working-directory: build
      - name: performance-test
        id: performance-test
        run: ctest -j1 --verbose -L performance
        working-directory: build
      - name: list-changed-cpp-files
        id: list-changed-cpp-files
        run: |
          head_commit=${{github.sha}}
          if [[ -n "${{github.event.pull_request.base.sha}}" ]]; then
            base_commit=${{github.event.pull_request.base.sha}}
            git fetch --depth=1 origin ${base_commit}
          else
            git fetch --depth=2 origin ${head_commit}
            base_commit=$(git log -n2 --format=format:%H ${head_commit} | tail -n1)
          fi
          echo "Collecting added/copied/modified/renamed/type-changed .cpp files from ${base_commit} to ${head_commit}"
          echo "files=$(git diff --name-only --diff-filter=ACMRT ${base_commit} ${head_commit} | grep '\.cpp$' | xargs)" >> $GITHUB_OUTPUT
      - name: clang-tidy
        run: |
          # https://stackoverflow.com/questions/58466701/clang-tidy-cant-locate-stdlib-headers
          sed -i -e 's/\/usr\/lib\/ccache\/clang++-20/\/lib\/llvm-20\/bin\/clang++/g' build/compile_commands.json
          sed -i -e 's/\/usr\/lib\/ccache\/clang-20/\/lib\/llvm-20\/bin\/clang/g' build/compile_commands.json
          sed -i -e 's/\/usr\/lib\/ccache\/c++/\/lib\/llvm-20\/bin\/clang++/g' build/compile_commands.json
          sed -i -e 's/\/usr\/lib\/ccache\/cc/\/lib\/llvm-20\/bin\/clang/g' build/compile_commands.json

          parallel -j$(( $(nproc) + 1 )) ./run_clang_tidy.sh ::: ${{steps.list-changed-cpp-files.outputs.files}}
      - name: check-cores
        if: ${{ failure() && steps.test.conclusion == 'failure' }}
        run: |
          if [ "$(ls -A /var/lib/apport/coredump/)" ]; then echo "CORES_EXIST=true" >> $GITHUB_ENV; fi
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: ubuntu-clang-coredumps
          path: /var/lib/apport/coredump/
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: ubuntu-clang-binaries
          path: build/bin
  rocky:
    name: "Rocky (docker) 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: ${{ env.CCACHE_DIR }}
          key: rocky-ccache-${{github.ref}}-${{github.sha}}
          restore-keys: |
            rocky-ccache-${{github.ref}}-
            rocky-ccache-refs/heads/main-
      - id: install_deps
        run: |
          sudo apt update
          sudo apt install -y ccache
          echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
      - id: free_disk_space
        run: |
          # We can gain additional disk space on the Ubuntu runners thanks to these suggestions:
          # https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
          # https://github.com/actions/runner-images/issues/2606#issuecomment-772683150
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /usr/local/lib/android
          sudo rm -rf /opt/ghc
          sudo rm -rf "/usr/local/share/boost"
          sudo rm -rf "$AGENT_TOOLSDIRECTORY"
      - id: build
        run: |
          # rocky build can run out of the github runners' disk space if built with RelWithDebInfo so we keep the Release build here
          mkdir build && cd build && cmake -DUSE_SHARED_LIBS=ON -DCI_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DSTRICT_GSL_CHECKS=AUDIT -DMINIFI_FAIL_ON_WARNINGS=OFF -DENABLE_AWS=ON -DENABLE_AZURE=ON \
              -DENABLE_ENCRYPT_CONFIG=ON -DENABLE_KAFKA=ON -DENABLE_MQTT=ON -DENABLE_OPC=ON -DENABLE_OPENCV=ON -DENABLE_OPS=ON -DENABLE_SQL=ON -DENABLE_SYSTEMD=ON \
              -DENABLE_PYTHON_SCRIPTING=ON -DENABLE_LUA_SCRIPTING=ON -DENABLE_KUBERNETES=ON -DENABLE_GCP=ON -DENABLE_PROCFS=ON -DENABLE_PROMETHEUS=ON \
              -DENABLE_ELASTICSEARCH=ON -DENABLE_GRAFANA_LOKI=ON -DENABLE_LLAMACPP=ON -DDOCKER_SKIP_TESTS=OFF -DDOCKER_BUILD_ONLY=ON -DDOCKER_CCACHE_DUMP_LOCATION=${{ env.CCACHE_DIR }} .. && make rocky-test
      - name: cache save
        uses: actions/cache/save@v4
        if: always()
        with:
          path: ${{ env.CCACHE_DIR }}
          key: rocky-ccache-${{github.ref}}-${{github.sha}}
      - id: test
        run: |
          # Set core file size limit to unlimited
          ulimit -c unlimited
          echo '/cores/core.%e.%p' | sudo tee /proc/sys/kernel/core_pattern
          sudo mkdir /cores
          sudo chmod 777 /cores
          docker run --name rocky-test --init --ulimit core=-1 --mount type=bind,source=/cores,target=/cores apacheminificpp:$(docker images | grep apacheminificpp | grep rocky | awk '{print $2}') bash -c 'cd /opt/minifi/build && make test ARGS="--timeout 300 -j8 --output-on-failure"'
      - name: check-cores
        if: ${{ failure() && steps.test.conclusion == 'failure' }}
        run: |
          if [ "$(ls -A /cores)" ]; then
            echo "CORES_EXIST=true" >> $GITHUB_ENV;
            docker cp rocky-test:/opt/minifi/build/bin /tmp
            sudo chmod -R 777 /cores
          fi
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: rocky-crashes
          path: /cores
      - uses: actions/upload-artifact@v4
        if: ${{ failure() && env.CORES_EXIST == 'true' }}
        with:
          name: rocky-binaries
          path: /tmp/bin
  docker_build:
    name: "Docker build for integration tests (x86_64)"
    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: ${{ env.CCACHE_DIR }}
          key: docker-ccache-${{github.ref}}-${{github.sha}}
          restore-keys: |
            docker-ccache-${{github.ref}}-
            docker-ccache-refs/heads/main
      - id: free_disk_space
        run: |
          # We can gain additional disk space on the Ubuntu runners thanks to these suggestions:
          # https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
          # https://github.com/actions/runner-images/issues/2606#issuecomment-772683150
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /usr/local/lib/android
          sudo rm -rf /opt/ghc
          sudo rm -rf "/usr/local/share/boost"
          sudo rm -rf "$AGENT_TOOLSDIRECTORY"
      - id: build
        run: |
          mkdir build
          cd build
          cmake ${DOCKER_CMAKE_FLAGS} -DDOCKER_CCACHE_DUMP_LOCATION=${{ env.CCACHE_DIR }} ..
          make docker
      - name: cache save
        uses: actions/cache/save@v4
        if: always()
        with:
          path: ${{ env.CCACHE_DIR }}
          key: docker-ccache-${{github.ref}}-${{github.sha}}
      - name: Save docker image
        run: cd build && docker save -o minifi_docker.tar apacheminificpp:$(grep CMAKE_PROJECT_VERSION:STATIC CMakeCache.txt | cut -d "=" -f2)
      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: minifi_docker
          path: build/minifi_docker.tar
  docker_tests:
    name: "Docker integration tests (x86_64)"
    needs: docker_build
    runs-on: ubuntu-24.04
    timeout-minutes: 180
    steps:
      - id: checkout
        uses: actions/checkout@v4
      - id: run_cmake
        name: Run CMake
        run: |
          mkdir build
          cd build
          cmake ${DOCKER_CMAKE_FLAGS} ..
      - name: Download artifact
        uses: actions/download-artifact@v4
        with:
          name: minifi_docker
          path: build
      - name: Load Docker image
        run: |
          docker load --input ./build/minifi_docker.tar
      - id: install_deps
        name: Install dependencies for Docker Verify
        run: |
          sudo apt update
          sudo apt install -y python3-virtualenv
      - id: free_disk_space
        run: |
          # We can gain additional disk space on the Ubuntu runners thanks to these suggestions:
          # https://github.com/actions/runner-images/issues/2840#issuecomment-790492173
          # https://github.com/actions/runner-images/issues/2606#issuecomment-772683150
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /usr/local/lib/android
          sudo rm -rf /opt/ghc
          sudo rm -rf "/usr/local/share/boost"
          sudo rm -rf "$AGENT_TOOLSDIRECTORY"
      - id: test
        name: Docker Verify
        working-directory: ./build
        run: make docker-verify
      - name: Test Reporter
        if: always()
        uses: phoenix-actions/test-reporting@f957cd93fc2d848d556fa0d03c57bc79127b6b5e  # v15
        with:
          name: Docker integration tests
          path: build/behavex_output/behave/*.xml
          reporter: java-junit
          output-to: 'step-summary'
          only-summary: 'true'
          list-tests: 'failed'
          list-suites: 'failed'
      - name: Upload artifact
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: behavex_output
          path: build/behavex_output
  linters:
    name: "C++ lint + Shellcheck + Flake8"
    runs-on: ubuntu-22.04-arm
    timeout-minutes: 15
    steps:
      - id: checkout
        uses: actions/checkout@v4

      - id: install_deps
        run: sudo apt update && sudo apt install -y flake8

      - id: cpp_lint
        name: C++ linter
        continue-on-error: true
        run: python3 thirdparty/google-styleguide/run_linter.py -q -i controller/ core-framework/ encrypt-config/ extension-framework/ extensions/ libminifi/ minifi-api/ minifi_main/

      - id: shellcheck
        name: Shellcheck
        continue-on-error: true
        run: ./run_shellcheck.sh .

      - id: flake8_check
        name: Flake8 check
        continue-on-error: true
        run: ./run_flake8.sh .

      - name: Check Linter Statuses
        if: steps.cpp_lint.outcome == 'failure' || steps.shellcheck.outcome == 'failure' || steps.flake8_check.outcome == 'failure'
        run: |
          echo "One or more linters failed. Failing the workflow."
          exit 1
