fix(infra): create pre commit script and port vertex as lazy import #1738
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: External Dependency Unit Tests | |
on: | |
merge_group: | |
pull_request: | |
branches: [main] | |
env: | |
# AWS | |
S3_AWS_ACCESS_KEY_ID: ${{ secrets.S3_AWS_ACCESS_KEY_ID }} | |
S3_AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_AWS_SECRET_ACCESS_KEY }} | |
# MinIO | |
S3_ENDPOINT_URL: "http://localhost:9004" | |
# Confluence | |
CONFLUENCE_TEST_SPACE_URL: ${{ secrets.CONFLUENCE_TEST_SPACE_URL }} | |
CONFLUENCE_TEST_SPACE: ${{ secrets.CONFLUENCE_TEST_SPACE }} | |
CONFLUENCE_TEST_PAGE_ID: ${{ secrets.CONFLUENCE_TEST_PAGE_ID }} | |
CONFLUENCE_IS_CLOUD: ${{ secrets.CONFLUENCE_IS_CLOUD }} | |
CONFLUENCE_USER_NAME: ${{ secrets.CONFLUENCE_USER_NAME }} | |
CONFLUENCE_ACCESS_TOKEN: ${{ secrets.CONFLUENCE_ACCESS_TOKEN }} | |
# LLMs | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
jobs: | |
discover-test-dirs: | |
runs-on: ubuntu-latest | |
outputs: | |
test-dirs: ${{ steps.set-matrix.outputs.test-dirs }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Discover test directories | |
id: set-matrix | |
run: | | |
# Find all subdirectories in backend/tests/external_dependency_unit | |
dirs=$(find backend/tests/external_dependency_unit -mindepth 1 -maxdepth 1 -type d -exec basename {} \; | sort | jq -R -s -c 'split("\n")[:-1]') | |
echo "test-dirs=$dirs" >> $GITHUB_OUTPUT | |
external-dependency-unit-tests: | |
needs: discover-test-dirs | |
# See https://runs-on.com/runners/linux/ | |
runs-on: [runs-on, runner=8cpu-linux-x64, "run-id=${{ github.run_id }}"] | |
strategy: | |
fail-fast: false | |
matrix: | |
test-dir: ${{ fromJson(needs.discover-test-dirs.outputs.test-dirs) }} | |
env: | |
PYTHONPATH: ./backend | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
cache-dependency-path: | | |
backend/requirements/default.txt | |
backend/requirements/dev.txt | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --retries 5 --timeout 30 -r backend/requirements/default.txt | |
pip install --retries 5 --timeout 30 -r backend/requirements/dev.txt | |
playwright install chromium | |
playwright install-deps chromium | |
- name: Set up Standard Dependencies | |
run: | | |
cd deployment/docker_compose | |
docker compose -f docker-compose.dev.yml -p onyx-stack up -d minio relational_db cache index | |
- name: Run migrations | |
run: | | |
cd backend | |
alembic upgrade head | |
- name: Run Tests for ${{ matrix.test-dir }} | |
shell: script -q -e -c "bash --noprofile --norc -eo pipefail {0}" | |
run: | | |
py.test \ | |
--durations=8 \ | |
-o junit_family=xunit2 \ | |
-xv \ | |
--ff \ | |
backend/tests/external_dependency_unit/${{ matrix.test-dir }} |