Skip to content

add LangSmith observability, partner endpoint callout, and QA fixes t… #275

add LangSmith observability, partner endpoint callout, and QA fixes t…

add LangSmith observability, partner endpoint callout, and QA fixes t… #275

Workflow file for this run

name: AIQ CI
on:
pull_request:
branches:
- develop
push:
branches:
- develop
permissions:
contents: read
concurrency:
group: aiq-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
pre-commit:
name: Lint and Hooks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Setup uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install markdown-link-check
run: npm install -g markdown-link-check
- name: Install dev dependencies
run: |
uv venv --python 3.13 .venv
. .venv/bin/activate
uv pip install -e ".[dev]"
uv pip install nbconvert
uv pip install -e ./frontends/aiq_api
uv pip install -e ./sources/google_scholar_paper_search
uv pip install -e "./sources/knowledge_layer[all]"
- name: Ruff checks
run: |
. .venv/bin/activate
ruff check .
ruff format --check .
- name: Run remaining pre-commit hooks
run: |
. .venv/bin/activate
SKIP=ruff-check,ruff-format,pytest,helm-lint pre-commit run --all-files
test:
name: Pytest and Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Setup uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
- name: Install test dependencies
run: |
uv venv --python 3.13 .venv
. .venv/bin/activate
uv pip install -e ".[dev]"
uv pip install -e ./frontends/aiq_api
uv pip install -e "./sources/knowledge_layer[all]"
- name: Run tests with coverage
run: |
set -euo pipefail
. .venv/bin/activate
python -X faulthandler -m pytest tests/ -v \
--junitxml=report.xml \
--cov=src/aiq_agent \
--cov-report=xml \
--cov-report=html \
--cov-report=term \
--cov-fail-under=65
- name: Upload coverage artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: pytest-coverage
path: |
report.xml
coverage.xml
htmlcov/
retention-days: 7
helm-lint:
name: Helm Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Helm
uses: azure/setup-helm@v4
- name: Lint Helm charts
run: |
for chart in deploy/helm/helm-charts-k8s/*; do
if [ -d "$chart" ]; then
helm lint "$chart"
fi
done
test-scripts:
name: Script Validation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Setup uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
- name: Install script test dependencies
shell: bash
run: |
set -euo pipefail
uv venv --python 3.13 .venv
. .venv/bin/activate
uv pip install -e ".[dev]"
for pkg in \
./frontends/cli \
./frontends/debug \
./frontends/aiq_api \
./frontends/benchmarks/freshqa \
./frontends/benchmarks/intent_classifier \
./sources/tavily_web_search \
./sources/google_scholar_paper_search
do
if [ -d "$pkg" ]; then
uv pip install -e "$pkg"
fi
done
- name: Run script tests
run: |
. .venv/bin/activate
chmod +x ci/scripts/test_scripts.sh
ci/scripts/test_scripts.sh --skip-setup