name: Test Shared Suite (Language-Specific)
on:
workflow_call:
inputs:
language:
description: Language to test (python, javascript, java)
required: true
type: string
python-version:
description: Python version to use
type: string
required: true
skip-coverage:
description: Skip coverage reporting
type: boolean
default: false
debug_logging:
description: Enable trace-level logging
type: boolean
default: true
all-adapter-languages:
description: Comma-separated list of all adapter languages from versions.json
type: string
required: false
default: ''
parallel-workers:
description: Number of parallel pytest workers (0 = disabled, no. of CPU cores avail = recommended)
type: string
required: false
default: '2'
env:
IS_GITHUB: ${{ vars.IS_GITHUB || 'false' }} # Use repo variable, default to false for ACT
AIDB_LOG_LEVEL: ${{ (inputs.debug_logging == true) && 'TRACE' || 'INFO' }}
AIDB_ADAPTER_TRACE: ${{ (inputs.debug_logging == true) && '1' || '0' }}
AIDB_CONSOLE_LOGGING: '1'
PYTHON_VERSION: ${{ inputs.python-version }}
jobs:
test-shared:
name: Shared Tests (${{ inputs.language }})
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup AIDB environment
uses: ./.github/actions/setup-aidb-env
with:
python-version: ${{ inputs.python-version }}
- name: Download test artifacts
uses: ./.github/actions/download-test-artifacts
with:
include-adapters: 'true'
include-docker: 'true'
docker-languages: ${{ inputs.language }}
all-adapter-languages: ${{ inputs.all-adapter-languages }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run tests
uses: ./.github/actions/run-aidb-tests
env:
# Enable extra Java diagnostics only for the Java matrix job
AIDB_JAVA_DIAG: ${{ inputs.language == 'java' && '1' || '0' }}
with:
suite: shared
additional-args: -l ${{ inputs.language }}
coverage-flags: shared-${{ inputs.language }}
skip-coverage: ${{ inputs.skip-coverage }}
artifact-suffix: ${{ inputs.language }}
parallel-workers: ${{ inputs.parallel-workers }}