Voyageai context and multimodal model(s) #407
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: Alembic Migration Validation | |
| on: | |
| pull_request: | |
| branches: [ main ] | |
| pull_request_target: | |
| branches: [ main ] | |
| types: [labeled] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
| jobs: | |
| changed-files: | |
| # Run on pull_request OR on pull_request_target only when labeled "safe to test" | |
| if: github.event_name == 'pull_request' || (github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe to test')) | |
| runs-on: ubuntu-latest | |
| name: changed-files | |
| outputs: | |
| all_changed_files: ${{ steps.changed-files.outputs.all_changed_files }} | |
| any_changed: ${{ steps.changed-files.outputs.any_changed }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| fetch-depth: 0 | |
| - name: Get changed files | |
| id: changed-files | |
| uses: tj-actions/changed-files@v44 | |
| with: | |
| files: | | |
| alembic/** | |
| .github/workflows/alembic-validation.yml | |
| test-sqlite: | |
| needs: [ changed-files ] | |
| if: ${{ needs.changed-files.outputs.any_changed == 'true' }} | |
| runs-on: [self-hosted, medium] | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| - name: Install dependencies | |
| shell: bash | |
| working-directory: . | |
| run: uv sync --no-install-project ${{ inputs.install-args || '--extra sqlite --extra external-tools --extra dev --extra cloud-tool-sandbox' }} | |
| - name: Test alembic migration | |
| working-directory: . | |
| run: | | |
| uv run alembic upgrade head | |
| # kinda janky but I think this might not matter for sqlite? | |
| # uv run alembic check | |
| - name: Cleanup persistent data | |
| if: ${{ always() }} | |
| working-directory: . | |
| run: | | |
| echo "Cleaning up persistent data..." | |
| sudo rm -rf ~/.letta || true | |
| test-postgres: | |
| needs: [ changed-files ] | |
| if: ${{ needs.changed-files.outputs.any_changed == 'true' }} | |
| runs-on: [self-hosted, medium] | |
| timeout-minutes: 15 | |
| services: | |
| postgres: | |
| image: pgvector/pgvector:pg17 | |
| ports: | |
| - 5432:5432 | |
| env: | |
| POSTGRES_HOST_AUTH_METHOD: trust | |
| POSTGRES_DB: postgres | |
| POSTGRES_USER: postgres | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: ${{ github.event.pull_request.head.repo.full_name }} | |
| ref: ${{ github.event.pull_request.head.ref }} | |
| - name: Install dependencies | |
| shell: bash | |
| working-directory: . | |
| run: uv sync --no-install-project ${{ inputs.install-args || '--extra postgres --extra external-tools --extra dev --extra cloud-tool-sandbox' }} | |
| - name: Test alembic migration | |
| working-directory: . | |
| env: | |
| LETTA_PG_PORT: 5432 | |
| LETTA_PG_USER: postgres | |
| LETTA_PG_PASSWORD: postgres | |
| LETTA_PG_DB: postgres | |
| LETTA_PG_HOST: localhost | |
| run: | | |
| psql -h localhost -U postgres -d postgres -c 'CREATE EXTENSION IF NOT EXISTS vector;' | |
| uv run alembic upgrade head | |
| uv run alembic check | |
| - name: Print docker logs if tests fail | |
| if: ${{ failure() || cancelled() }} | |
| run: | | |
| echo "Printing Docker Logs..." | |
| docker logs $(docker ps -aq --filter "ancestor=pgvector/pgvector:pg17") || true | |
| - name: Cleanup containers and volumes | |
| if: ${{ always() }} | |
| run: | | |
| echo "Cleaning up containers and volumes..." | |
| docker stop $(docker ps -aq --filter "ancestor=pgvector/pgvector:pg17") || true | |
| docker rm $(docker ps -aq --filter "ancestor=pgvector/pgvector:pg17") || true | |
| docker volume prune -f || true | |
| docker system prune -f || true |