Skip to content
Snippets Groups Projects
e2e.yml 3.95 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
              name: playwright-report-python-${{ matrix.os }}-${{ matrix.frameworks }}-${{ matrix.datasources }}
    
              path: ./playwright-report/
    
              retention-days: 30
    
      e2e-typescript:
        name: typescript
    
        timeout-minutes: 60
        strategy:
          fail-fast: true
          matrix:
            node-version: [18, 20]
            python-version: ["3.11"]
    
    Huu Le's avatar
    Huu Le committed
            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 }}
    
    Marcus Schiesser's avatar
    Marcus Schiesser committed
          - 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
    
    Thuc Pham's avatar
    Thuc Pham committed
            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/
    
              retention-days: 30