Skip to content

refactor: scaffold fastapi to allow for incremental migration #7748

refactor: scaffold fastapi to allow for incremental migration

refactor: scaffold fastapi to allow for incremental migration #7748

Workflow file for this run

name: Python CI
on:
push:
branches: [main, datasets]
pull_request:
paths:
- "src/**"
- "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: 23.1.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/**"
- "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.8
3.12
- run: pip install tox==4.12.1
- run: tox run-parallel --parallel-no-spinner -e py38-ci-phoenix_evals,py311-ci-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.8
uses: actions/setup-python@v4
with:
python-version: "3.8"
- 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.8"]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
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
- name: Run tests (macOS)
if: runner.os == 'macOS'
run: |
hatch run test:tests
- name: Run tests (Windows)
if: runner.os == 'Windows'
run: |
hatch run test:tests