name: e2e plano tests on: push: branches: - main pull_request: jobs: e2e_plano_tests: runs-on: ubuntu-latest-m strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] defaults: run: working-directory: ./tests/archgw steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} cache: "pip" # auto-caches based on requirements files - name: build arch docker image run: | cd ../../ && docker build -f Dockerfile . -t katanemo/plano -t katanemo/plano:0.4.4 -t katanemo/plano:latest - name: start plano env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} AZURE_API_KEY: ${{ secrets.AZURE_API_KEY }} AWS_BEARER_TOKEN_BEDROCK: ${{ secrets.AWS_BEARER_TOKEN_BEDROCK }} run: | docker compose up | tee &> plano.logs & - name: wait for plano to be healthy run: | source common.sh && wait_for_healthz http://localhost:10000/healthz - name: install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: install test dependencies run: | uv sync - name: run plano tests run: | uv run pytest || tail -100 plano.logs - name: stop plano docker container env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }} GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | docker compose down