Skip to content

NiPyAPI 1.0 Release - Apache NiFi 2.x Compatibility #5

NiPyAPI 1.0 Release - Apache NiFi 2.x Compatibility

NiPyAPI 1.0 Release - Apache NiFi 2.x Compatibility #5

Workflow file for this run

name: CI
on:
push:
branches: [ main, maint-0.x ]
pull_request:
branches: [ main, maint-0.x ]
jobs:
test-python-312-single-user:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Lint with flake8 and pylint
run: make lint
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (single-user)
run: make up NIPYAPI_PROFILE=single-user
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=single-user
- name: Run integration tests with coverage
run: NIPYAPI_PROFILE=single-user PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest --cov=nipyapi --cov-report=xml --cov-report=term-missing
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
- name: Test distribution build and import
run: make test-dist
- name: Stop NiFi infrastructure
if: always()
run: make down
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
fail_ci_if_error: false
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test-python-311-single-user:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (single-user)
run: make up NIPYAPI_PROFILE=single-user
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=single-user
- name: Run integration tests
run: NIPYAPI_PROFILE=single-user PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
- name: Stop NiFi infrastructure
if: always()
run: make down
test-python-310-single-user:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (single-user)
run: make up NIPYAPI_PROFILE=single-user
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=single-user
- name: Run integration tests
run: NIPYAPI_PROFILE=single-user PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
- name: Stop NiFi infrastructure
if: always()
run: make down
test-python-39-single-user:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (single-user)
run: make up NIPYAPI_PROFILE=single-user
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=single-user
- name: Run integration tests
run: NIPYAPI_PROFILE=single-user PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
- name: Stop NiFi infrastructure
if: always()
run: make down
test-python-312-secure-ldap:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (secure-ldap)
run: make up NIPYAPI_PROFILE=secure-ldap
- name: Wait for containers to stabilize
run: sleep 5 && docker ps -a
- name: Debug SSL environment
run: |
python -c "import ssl; print('OpenSSL version:', ssl.OPENSSL_VERSION)"
python -c "import ssl; print('SSL context flags:', ssl.create_default_context().verify_flags)"
- name: Debug environment variables
run: |
echo "=== Environment Variables ==="
echo "NIFI_VERIFY_SSL: ${NIFI_VERIFY_SSL:-unset}"
echo "REGISTRY_VERIFY_SSL: ${REGISTRY_VERIFY_SSL:-unset}"
echo "NIPYAPI_CHECK_HOSTNAME: ${NIPYAPI_CHECK_HOSTNAME:-unset}"
echo "=== Testing getenv_bool parsing ==="
python -c "
import os
os.environ['NIFI_VERIFY_SSL'] = '0'
os.environ['REGISTRY_VERIFY_SSL'] = '0'
os.environ['NIPYAPI_CHECK_HOSTNAME'] = '0'
import nipyapi
print('NIFI_VERIFY_SSL via getenv_bool:', nipyapi.utils.getenv_bool('NIFI_VERIFY_SSL'))
print('REGISTRY_VERIFY_SSL via getenv_bool:', nipyapi.utils.getenv_bool('REGISTRY_VERIFY_SSL'))
print('NIPYAPI_CHECK_HOSTNAME via getenv_bool:', nipyapi.utils.getenv_bool('NIPYAPI_CHECK_HOSTNAME'))
"
env:
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=secure-ldap
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Run integration tests
run: NIPYAPI_PROFILE=secure-ldap PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Dump running containers and logs on failure
if: failure()
run: |
echo "=== Container Status ==="
docker ps -a
echo "=== Container Logs ==="
for container in $(docker ps -aq); do
echo "--- Logs for container: $container ---"
docker logs "$container" 2>&1 || echo "Failed to get logs for container $container"
echo ""
done
- name: Stop NiFi infrastructure
if: always()
run: make down
test-python-312-secure-mtls:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[dev]
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Generate certificates
run: make certs
- name: Start NiFi infrastructure (secure-mtls)
run: make up NIPYAPI_PROFILE=secure-mtls
- name: Wait for containers to stabilize
run: sleep 5 && docker ps -a
- name: Debug SSL environment
run: |
python -c "import ssl; print('OpenSSL version:', ssl.OPENSSL_VERSION)"
python -c "import ssl; print('SSL context flags:', ssl.create_default_context().verify_flags)"
- name: Debug environment variables
run: |
echo "=== Environment Variables ==="
echo "NIFI_VERIFY_SSL: ${NIFI_VERIFY_SSL:-unset}"
echo "REGISTRY_VERIFY_SSL: ${REGISTRY_VERIFY_SSL:-unset}"
echo "NIPYAPI_CHECK_HOSTNAME: ${NIPYAPI_CHECK_HOSTNAME:-unset}"
echo "=== Testing getenv_bool parsing ==="
python -c "
import os
os.environ['NIFI_VERIFY_SSL'] = '0'
os.environ['REGISTRY_VERIFY_SSL'] = '0'
os.environ['NIPYAPI_CHECK_HOSTNAME'] = '0'
import nipyapi
print('NIFI_VERIFY_SSL via getenv_bool:', nipyapi.utils.getenv_bool('NIFI_VERIFY_SSL'))
print('REGISTRY_VERIFY_SSL via getenv_bool:', nipyapi.utils.getenv_bool('REGISTRY_VERIFY_SSL'))
print('NIPYAPI_CHECK_HOSTNAME via getenv_bool:', nipyapi.utils.getenv_bool('NIPYAPI_CHECK_HOSTNAME'))
"
env:
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Wait for NiFi to be ready
run: make wait-ready NIPYAPI_PROFILE=secure-mtls
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Run integration tests
run: NIPYAPI_PROFILE=secure-mtls PYTHONPATH=${{ github.workspace }}:$PYTHONPATH pytest
env:
PYTHONHTTPSVERIFY: "0"
CURL_CA_BUNDLE: ""
REQUESTS_CA_BUNDLE: ""
NIFI_VERIFY_SSL: "0"
REGISTRY_VERIFY_SSL: "0"
NIPYAPI_CHECK_HOSTNAME: "0"
- name: Dump running containers and logs on failure
if: failure()
run: |
echo "=== Container Status ==="
docker ps -a
echo "=== Container Logs ==="
for container in $(docker ps -aq); do
echo "--- Logs for container: $container ---"
docker logs "$container" 2>&1 || echo "Failed to get logs for container $container"
echo ""
done
- name: Stop NiFi infrastructure
if: always()
run: make down