feat: support human in the loop for TS #3123
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: E2E Tests for create-llama package | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "python/llama-index-server/**" | |
| - ".github/workflows/*llama_index_server.yml" | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "python/llama-index-server/**" | |
| - ".github/workflows/*llama_index_server.yml" | |
| 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: ["--no-files", "--example-file", "--llamacloud"] | |
| template-types: ["streaming", "llamaindexserver"] | |
| 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 uv | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add uv to PATH # Ensure uv is available in subsequent steps | |
| run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - 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: packages/create-llama | |
| - name: Build create-llama | |
| run: pnpm run build | |
| working-directory: packages/create-llama | |
| - name: Install | |
| run: pnpm run pack-install | |
| working-directory: packages/create-llama | |
| - name: Build and store server package | |
| run: | | |
| pnpm run build | |
| wheel_file=$(ls dist/*.whl | head -n 1) | |
| mkdir -p "${{ runner.temp }}" | |
| cp "$wheel_file" "${{ runner.temp }}/" | |
| echo "SERVER_PACKAGE_PATH=${{ runner.temp }}/$(basename "$wheel_file")" >> $GITHUB_ENV | |
| working-directory: python/llama-index-server | |
| - 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 }} | |
| TEMPLATE_TYPE: ${{ matrix.template-types }} | |
| PYTHONIOENCODING: utf-8 | |
| PYTHONLEGACYWINDOWSSTDIO: utf-8 | |
| SERVER_PACKAGE_PATH: ${{ env.SERVER_PACKAGE_PATH }} | |
| working-directory: packages/create-llama | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: playwright-report-python-${{ matrix.os }}-${{ matrix.frameworks }}-${{ matrix.datasources }}-${{ matrix.template-types }} | |
| path: packages/create-llama/playwright-report/ | |
| overwrite: true | |
| retention-days: 30 | |
| e2e-typescript: | |
| name: typescript | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| node-version: [20, 22] | |
| python-version: ["3.11"] | |
| os: [macos-latest, windows-latest, ubuntu-22.04] | |
| frameworks: ["nextjs"] | |
| datasources: ["--no-files", "--example-file", "--llamacloud"] | |
| template-types: ["streaming", "llamaindexserver"] | |
| 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 uv | |
| run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| - name: Add uv to PATH # Ensure uv is available in subsequent steps | |
| run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - 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: packages/create-llama | |
| - name: Build create-llama | |
| run: pnpm run build | |
| working-directory: packages/create-llama | |
| - name: Install | |
| run: pnpm run pack-install | |
| working-directory: packages/create-llama | |
| - name: Build server | |
| run: pnpm run build | |
| working-directory: packages/server | |
| - name: Pack @llamaindex/server package | |
| run: | | |
| pnpm pack --pack-destination "${{ runner.temp }}" | |
| if [ "${{ runner.os }}" == "Windows" ]; then | |
| file=$(find "${{ runner.temp }}" -name "llamaindex-server-*.tgz" | head -n 1) | |
| mv "$file" "${{ runner.temp }}/llamaindex-server.tgz" | |
| else | |
| mv ${{ runner.temp }}/llamaindex-server-*.tgz ${{ runner.temp }}/llamaindex-server.tgz | |
| fi | |
| working-directory: packages/server | |
| - 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 }} | |
| TEMPLATE_TYPE: ${{ matrix.template-types }} | |
| SERVER_PACKAGE_PATH: ${{ runner.temp }}/llamaindex-server.tgz | |
| working-directory: packages/create-llama | |
| - uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: playwright-report-typescript-${{ matrix.os }}-${{ matrix.frameworks }}-${{ matrix.datasources }}-node${{ matrix.node-version }}-${{ matrix.template-types }} | |
| path: packages/create-llama/playwright-report/ | |
| overwrite: true | |
| retention-days: 30 |