Skip to content

build(deps-dev): bump brace-expansion from 1.1.14 to 1.1.18 in the npm_and_yarn group across 1 directory #934

build(deps-dev): bump brace-expansion from 1.1.14 to 1.1.18 in the npm_and_yarn group across 1 directory

build(deps-dev): bump brace-expansion from 1.1.14 to 1.1.18 in the npm_and_yarn group across 1 directory #934

Workflow file for this run

name: test
on:
pull_request:
branches:
- trunk
push:
branches:
- trunk
- release-*
tags:
- v*
workflow_dispatch:
permissions:
contents: read
jobs:
browser-tests:
name: Browser Tests (Node ${{ matrix.node }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node:
- 20
- 22
- 24
steps:
- uses: actions/checkout@v5
- name: Set up Node.js for test runner
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build browser bundle
run: npm run build
- name: Run browser compatibility tests
run: npm run test:browser
local-runtime-tests:
name: Local Runtime (${{ matrix.os }}, Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
node:
- 20
- 22
- 24
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Install PostgreSQL (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y postgresql
sudo service postgresql start
sleep 5
sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='postgres'" | grep -q 1 || sudo -u postgres createuser -s postgres
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres';"
sudo -u postgres createdb testdb
- name: Install PostgreSQL (MacOS)
if: matrix.os == 'macos-latest'
run: |
brew install postgresql
brew services start postgresql
sleep 5
createuser -s postgres
psql -d postgres -c "ALTER USER postgres PASSWORD 'postgres';"
createdb testdb
- name: Wait for PostgreSQL to start
run: sleep 5
- name: Check PostgreSQL
env:
PGPASSWORD: postgres
run: psql -h localhost -U postgres -c 'SELECT version();'
- name: Prepare PostgreSQL dataset
env:
PGPASSWORD: postgres
run: |
psql -h localhost -U postgres -d testdb < test/scripts/setup-data-postgresql.sql
psql -h localhost -U postgres -d testdb -c 'SELECT * FROM test_postgresql_table;'
- name: Install Spice (https://install.spiceai.org)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl https://install.spiceai.org | /bin/bash
echo "$HOME/.spice/bin" >> $GITHUB_PATH
$HOME/.spice/bin/spice install
- name: Check spice version
run: spice version
- name: Start spice runtime
env:
SPICE_SECRET_POSTGRES_PASSWORD: postgres
working-directory: test/scripts
run: |
spiced &> spice.log &
# time to initialize added dataset
sleep 2
- name: Run Node.js local runtime tests
run: npm run test:node -- test/local-runtime.test.ts test/local-runtime-params.test.ts test/user-agent.test.ts test/grpc-http-fallback.test.ts
- name: Run performance tests
run: npm run test:perf
- name: Stop spice and check logs
if: always()
run: |
killall spiced || true
cat test/scripts/spice.log
vercel-setup:
name: Setup Vercel Endpoint
runs-on: spiceai-dev-runners
# Don't fail the entire workflow if Vercel is not available
continue-on-error: true
outputs:
vercel-api-endpoint: ${{ steps.vercel.outputs.vercel-api-endpoint }}
vercel-available: ${{ steps.vercel.outcome == 'success' }}
steps:
- uses: actions/checkout@v5
- name: Setup Vercel endpoint
id: vercel
uses: ./.github/actions/setup-vercel-endpoint
with:
vercel-endpoint-override: ${{ secrets.VERCEL_ENDPOINT }}
vercel-bypass-secret: ${{ secrets.VERCEL_AUTOMATION_BYPASS_SECRET }}
branch-name: ${{ github.head_ref || github.ref_name }}
cloud-tests:
name: Cloud Tests (${{ matrix.os }}, Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
needs: vercel-setup
# Run even if vercel-setup failed (Vercel tests will be skipped)
if: ${{ always() }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
node:
- 20
- 22
- 24
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Run cloud tests
run: npm test -- test/cloud.test.ts
timeout-minutes: 10
env:
SPICEAI_API_KEY: ${{ secrets.SPICEAI_API_KEY }} # spice.ai/spiceai/spice-js
SCP_SPICEAI_TPCH_API_KEY: ${{ secrets.SCP_SPICEAI_TPCH_API_KEY }} # spice.ai/spiceai/tpch
HTTP_URL: ${{ secrets.HTTP_URL || 'https://data.spiceai.io' }}
FLIGHT_URL: ${{ secrets.FLIGHT_URL || 'flight.spiceai.io:443' }}
VERCEL_ENDPOINT: ${{ needs.vercel-setup.outputs.vercel-api-endpoint }}
VERCEL_AUTOMATION_BYPASS_SECRET: ${{ secrets.VERCEL_AUTOMATION_BYPASS_SECRET }}
tpch-tests:
name: TPCH Integration Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v5
with:
node-version: 22
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build project
run: npm run build
- name: Run TPCH integration tests
run: npm test -- test/tpch-integration.test.ts
timeout-minutes: 15
env:
SCP_SPICEAI_TPCH_API_KEY: ${{ secrets.SCP_SPICEAI_TPCH_API_KEY }}