name: E2E Tests on: push: branches: [main] pull_request: branches: [main] env: POETRY_VERSION: "1.6.1" jobs: e2e-python: name: python timeout-minutes: 60 strategy: fail-fast: true matrix: node-version: [20] python-version: ["3.11"] os: [macos-latest, windows-latest, ubuntu-22.04] frameworks: ["fastapi"] datasources: ["--example-file", "--llamacloud"] defaults: run: shell: bash runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Set up python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: snok/install-poetry@v1 with: version: ${{ env.POETRY_VERSION }} - uses: pnpm/action-setup@v3 - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Install Playwright Browsers run: pnpm exec playwright install --with-deps working-directory: . - name: Build create-llama run: pnpm run build working-directory: . - name: Install run: pnpm run pack-install working-directory: . - name: Run Playwright tests for Python run: pnpm run e2e:python env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} LLAMA_CLOUD_API_KEY: ${{ secrets.LLAMA_CLOUD_API_KEY }} FRAMEWORK: ${{ matrix.frameworks }} DATASOURCE: ${{ matrix.datasources }} working-directory: . - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report-python-${{ matrix.os }}-${{ matrix.frameworks }}-${{ matrix.datasources }} path: ./playwright-report/ overwrite: true retention-days: 30 e2e-typescript: name: typescript timeout-minutes: 60 strategy: fail-fast: true matrix: node-version: [18, 20] python-version: ["3.11"] os: [macos-latest, windows-latest, ubuntu-22.04] frameworks: ["nextjs", "express"] datasources: ["--no-files", "--example-file", "--llamacloud"] defaults: run: shell: bash runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - name: Set up python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: snok/install-poetry@v1 with: version: ${{ env.POETRY_VERSION }} - uses: pnpm/action-setup@v3 - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Install Playwright Browsers run: pnpm exec playwright install --with-deps working-directory: . - name: Build create-llama run: pnpm run build working-directory: . - name: Install run: pnpm run pack-install working-directory: . - name: Run Playwright tests for TypeScript run: pnpm run e2e:typescript env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} LLAMA_CLOUD_API_KEY: ${{ secrets.LLAMA_CLOUD_API_KEY }} FRAMEWORK: ${{ matrix.frameworks }} DATASOURCE: ${{ matrix.datasources }} working-directory: . - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report-typescript-${{ matrix.os }}-${{ matrix.frameworks }}-${{ matrix.datasources }}-node${{ matrix.node-version }} path: ./playwright-report/ overwrite: true retention-days: 30