Install Codeflash Github action #5
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Codeflash Optimization | |
on: | |
pull_request: | |
paths: | |
- 'pydantic_ai_slim/pydantic_ai/**' | |
workflow_dispatch: | |
concurrency: | |
# Any new push to the PR will cancel the previous run, so that only the latest code is optimized | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
optimize: | |
name: Optimize new Python code | |
# Don't run codeflash on codeflash-ai[bot] commits, prevent duplicate optimizations | |
if: ${{ github.actor != 'codeflash-ai[bot]' }} | |
runs-on: ubuntu-latest | |
env: | |
CODEFLASH_API_KEY: ${{ secrets.CODEFLASH_API_KEY }} | |
steps: | |
- name: 🛎️ Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: 🐍 Setup UV | |
uses: astral-sh/setup-uv@v6 | |
with: | |
enable-cache: true | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- name: 📦 Install Dependencies | |
run: uv sync --frozen --all-extras --all-packages --group lint --group docs | |
- name: Functions to Optimize | |
shell: python | |
id: discover_step | |
run: | | |
from codeflash.cli_cmds.cli import parse_args, process_pyproject_config | |
import os | |
args = process_pyproject_config(parse_args()) | |
t = TestConfig(tests_root=args.tests_root, tests_project_rootdir=args.test_project_root, project_root_path=args.project_root, test_framework=args.test_framework, pytest_cmd=args.pytest_cmd,) | |
f = get_functions_to_optimize(test_cfg=t, ignore_paths=args.ignore_paths, project_root=args.project_root, module_root=args.module_root,optimize_all=None, replay_test=None, file=None, only_get_this_function=None) | |
functions = " ".join([fto.function_name for ftol in f[0].values() for fto in ftol]) | |
open(os.environ.get('GITHUB_OUTPUT'), 'a').write(f"functions_to_optimize={functions}") | |
- name: ⚡️Codeflash Optimization | |
run: uv run codeflash optimize --only-functions ${{ steps.discover_step.outputs.functions_to_optimize }} -m pytest --inline-snapshot=disable tests/test_examples.py |