Skip to content

feat: Experimental async experiment entry points #9744

feat: Experimental async experiment entry points

feat: Experimental async experiment entry points #9744

Workflow file for this run

name: Python CI
on:
push:
branches: [main, auth]
pull_request:
paths:
- "src/**"
- "tests/**"
- "integration_tests/**"
- "tutorials/**"
- "pyproject.toml"
- "packages/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: test-python-${{ github.head_ref }}
cancel-in-progress: true
env:
pip-version: 24.2
OPENAI_API_KEY: "sk-fake-openai-key" # fake openai key so that llama_index doesn't download huggingface embeddings
jobs:
changes:
name: Filter Changes
runs-on: ubuntu-latest
outputs:
phoenix: ${{ steps.filter.outputs.phoenix }}
packages: ${{ steps.filter.outputs.packages }}
phoenix_evals: ${{ steps.filter.outputs.phoenix_evals }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
phoenix:
- "src/**"
- "tests/**"
- "integration_tests/**"
- "tutorials/**"
- "pyproject.toml"
packages:
- "packages/**"
phoenix_evals:
- "packages/phoenix-evals/**"
tox:
name: Tox
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.packages == 'true' }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: |
3.9
3.12
- uses: yezz123/setup-uv@v4
with:
uv-version: 0.4.8
uv-venv: ${{ github.job }}-${{ github.run_number }}
- run: uv pip install tox==4.18.1 tox-uv==1.11.3
- run: tox run-parallel --parallel-no-spinner -e py39-ci-pkg-phoenix_evals,py312-ci-pkg-phoenix_evals
if: ${{ needs.changes.outputs.phoenix_evals == 'true' }}
lint:
name: Lint Phoenix
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.phoenix == 'true' }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip==${{ env.pip-version }}
pip install hatch
- name: Proto codegen
run: |
hatch run proto:recompile
git diff --exit-code
- name: Check format
run: |
hatch run style:check
- name: Check types
run: |
hatch run type:check
- name: Gql codegen
run: |
hatch run gql:build
git diff --exit-code
- name: Export OpenAPI schema
run: |
hatch run openapi:build
git diff --exit-code
- name: Check notebooks have cleaned output and metadata
run: |
hatch run notebooks:clean
git diff --exit-code
test:
name: Test Phoenix
runs-on: ${{ matrix.os }}
needs: changes
if: ${{ needs.changes.outputs.phoenix == 'true' }}
strategy:
matrix:
os: [macos-12, windows-latest, ubuntu-latest]
python-version: ["3.9"]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip==${{ env.pip-version }}
pip install hatch
- name: Install PostgreSQL (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get -yqq install postgresql
- name: Run tests (Ubuntu)
if: runner.os == 'Linux'
run: |
hatch run test:tests --run-postgres
continue-on-error: false
- name: Run tests (macOS)
if: runner.os == 'macOS'
run: |
hatch run test:tests
continue-on-error: false
- name: Run tests (Windows)
if: runner.os == 'Windows'
run: |
hatch run test:tests
continue-on-error: false
integration-test:
runs-on: ${{ matrix.os }}
needs: changes
if: ${{ needs.changes.outputs.phoenix == 'true' }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, windows-2019, macos-12]
services:
postgres:
# Applying this workaround: https://github.com/actions/runner/issues/822
image: ${{ (matrix.os == 'ubuntu-latest') && 'postgres:12' || '' }}
env:
POSTGRES_PASSWORD: phoenix
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.9
- uses: yezz123/setup-uv@v4
with:
uv-version: 0.4.8
uv-venv: ${{ github.job }}-${{ github.run_number }}
- run: uv pip install tox==4.18.1 tox-uv==1.11.3
- run: tox run-parallel --parallel-no-spinner -e py39-ci-integration_tests
if: ${{ matrix.os != 'ubuntu-latest' }}
timeout-minutes: 15
- run: tox run-parallel --parallel-no-spinner -e py39-ci-integration_tests,py312-ci-integration_tests
if: ${{ matrix.os == 'ubuntu-latest' }}
timeout-minutes: 15