name: e2e archgw tests on: push: branches: - main pull_request: jobs: e2e_archgw_tests: runs-on: ubuntu-latest-m strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13"] 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 arch/Dockerfile . -t katanemo/archgw -t katanemo/archgw:0.3.17 -t katanemo/archgw:latest - name: start archgw 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 &> archgw.logs & - name: wait for archgw to be healthy run: | source common.sh && wait_for_healthz http://localhost:10000/healthz - name: install poetry run: | export POETRY_VERSION=2.2.1 curl -sSL https://install.python-poetry.org | python3 - export PATH="$HOME/.local/bin:$PATH" - name: install test dependencies run: | poetry install - name: run archgw tests run: | poetry run pytest || tail -100 archgw.logs - name: stop archgw 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