ci: pack all module under packages (#1345) #5742
This file contains 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: Run Tests | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
POSTGRES_HOST_AUTH_METHOD: trust | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: ${{ vars.TURBO_TEAM }} | |
TURBO_REMOTE_ONLY: true | |
jobs: | |
e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x, 22.x] | |
name: E2E on Node.js ${{ matrix.node-version }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ankane/setup-postgres@v1 | |
with: | |
database: llamaindex_node_test | |
dev-files: true | |
- run: | | |
cd /tmp | |
git clone --branch v0.7.0 https://github.com/pgvector/pgvector.git | |
cd pgvector | |
make | |
sudo make install | |
- uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "pnpm" | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run E2E Tests | |
run: pnpm run e2e | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x, 22.x] | |
name: Test on Node.js ${{ matrix.node-version }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "pnpm" | |
- name: Install dependencies | |
run: pnpm install | |
- name: Run tests | |
run: pnpm run test | |
typecheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: "pnpm" | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build | |
run: pnpm run build | |
- name: Use Build For Examples | |
run: pnpm link ../packages/llamaindex/ | |
working-directory: ./examples | |
- name: Run Type Check | |
run: pnpm run type-check | |
- name: Run Circular Dependency Check | |
run: pnpm run circular-check | |
e2e-llamaindex-examples: | |
strategy: | |
fail-fast: false | |
matrix: | |
packages: | |
- cloudflare-worker-agent | |
- nextjs-agent | |
- nextjs-edge-runtime | |
- nextjs-node-runtime | |
- waku-query-engine | |
- llama-parse-browser | |
runs-on: ubuntu-latest | |
name: Build LlamaIndex Example (${{ matrix.packages }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: "pnpm" | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build llamaindex | |
run: pnpm run build | |
- name: Build ${{ matrix.packages }} | |
run: pnpm run build | |
working-directory: packages/llamaindex/e2e/examples/${{ matrix.packages }} | |
typecheck-examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: ".nvmrc" | |
cache: "pnpm" | |
- name: Install dependencies | |
run: pnpm install | |
- name: Build | |
run: pnpm run build | |
- name: Copy examples | |
run: rsync -rv --exclude=node_modules ./examples ${{ runner.temp }} | |
- name: Pack packages | |
run: | | |
for dir in packages/*; do | |
if [ -d "$dir" ] && [ -f "$dir/package.json" ] && [[ ! "$dir" =~ autotool ]]; then | |
echo "Packing $dir" | |
pnpm pack --pack-destination ${{ runner.temp }} -C $dir | |
else | |
echo "Skipping $dir, no package.json found" | |
fi | |
done | |
- name: Pack llm packages | |
run: | | |
for dir in packages/llm/*; do | |
if [ -d "$dir" ] && [ -f "$dir/package.json" ]; then | |
echo "Packing $dir" | |
pnpm pack --pack-destination ${{ runner.temp }} -C $dir | |
else | |
echo "Skipping $dir, no package.json found" | |
fi | |
done | |
- name: Install | |
run: npm add ${{ runner.temp }}/*.tgz | |
working-directory: ${{ runner.temp }}/examples | |
- name: Run Type Check | |
run: npx tsc --project ./tsconfig.json | |
working-directory: ${{ runner.temp }}/examples | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: build-dist | |
path: | | |
${{ runner.temp }}/*.tgz | |
if-no-files-found: error |