# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. name: system-tests on: push: paths: - '.github/workflows/system-tests.yml' - 'c2/c2-protocol/**' - 'nifi-system-tests/**' - 'nifi-api/**' - 'nifi-framework-api/**' - 'nifi-framework-bundle/**' - 'nifi-extension-bundles/nifi-py4j-extension-bundle/**' - 'nifi-stateless/**' pull_request: paths: - '.github/workflows/system-tests.yml' - 'c2/c2-protocol/**' - 'nifi-system-tests/**' - 'nifi-api/**' - 'nifi-framework-api/**' - 'nifi-framework-bundle/**' - 'nifi-extension-bundles/nifi-py4j-extension-bundle/**' - 'nifi-stateless/**' env: DEFAULT_MAVEN_OPTS: >- -Xmx4g -Duser.language=en -Duser.country=GB -Duser.timezone=UTC MAVEN_COMMAND: >- ./mvnw -V -nsu -ntp -ff MAVEN_BUILD_ARGUMENTS: >- install -D skipTests -am MAVEN_RUN_ARGUMENTS: >- verify -P integration-tests -D include-python-integration-tests=true MAVEN_PROJECTS: >- -pl :nifi-python-framework -pl :nifi-python-extension-api -pl :nifi-python-test-extensions -pl nifi-system-tests/nifi-system-test-suite -pl nifi-system-tests/nifi-stateless-system-test-suite concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: build_and_test: strategy: fail-fast: false matrix: os: [ ubuntu-latest, macos-14 ] version: [ 21 ] timeout-minutes: 120 runs-on: ${{ matrix.os }} name: ${{ matrix.os }} Java ${{ matrix.version }} steps: - name: System Information run: | if [ "${{ runner.os }}" = "macOS" ]; then top -l 1 | grep PhysMem && sysctl machdep.cpu; else cat /proc/cpuinfo && cat /proc/meminfo; fi df - name: Checkout Code uses: actions/checkout@v4 - name: Set up Java ${{ matrix.version }} uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: ${{ matrix.version }} cache: 'maven' - name: Set up Python 3.10 uses: actions/setup-python@v5 with: python-version: '3.10' - name: Build Dependencies env: MAVEN_OPTS: >- ${{ env.DEFAULT_MAVEN_OPTS }} run: > ${{ env.MAVEN_COMMAND }} ${{ env.MAVEN_BUILD_ARGUMENTS }} ${{ env.MAVEN_PROJECTS }} - name: Run Tests env: MAVEN_OPTS: >- ${{ env.DEFAULT_MAVEN_OPTS }} run: > ${{ env.MAVEN_COMMAND }} ${{ env.MAVEN_RUN_ARGUMENTS }} ${{ env.MAVEN_PROJECTS }} - name: Upload Troubleshooting Logs if: failure() || cancelled() uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }}-${{ matrix.version }}-troubleshooting-logs path: | nifi-system-tests/nifi-system-test-suite/target/failsafe-reports/**/*.txt nifi-system-tests/nifi-system-test-suite/target/surefire-reports/**/*.txt nifi-system-tests/nifi-system-test-suite/target/troubleshooting/**/* retention-days: 7