Skip to content

[SPIKE] Replace SQLite with PGLite for in-process test DB #1163

[SPIKE] Replace SQLite with PGLite for in-process test DB

[SPIKE] Replace SQLite with PGLite for in-process test DB #1163

name: CI Software Factory
on:
push:
branches:
- main
- ci-bisect
- ci-bisect-**
pull_request:
paths:
- ".github/workflows/ci-software-factory.yaml"
- "packages/runtime-common/**"
- "packages/base/**"
- "packages/boxel-icons/**"
- "packages/host/**"
- "packages/matrix/**"
- "packages/postgres/**"
- "packages/realm-server/**"
- "packages/software-factory/**"
- "package.json"
- "pnpm-lock.yaml"
workflow_dispatch:
concurrency:
group: ci-software-factory-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
checks: write
contents: read
id-token: write
pull-requests: write
jobs:
test-web-assets:
name: Build test web assets
uses: ./.github/workflows/test-web-assets.yaml
with:
caller: ci-software-factory
software-factory-test:
name: Software Factory Tests
needs: test-web-assets
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: ./.github/actions/init
- name: Download test web assets
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: ${{ needs.test-web-assets.outputs.artifact_name }}
path: .test-web-assets-artifact
- name: Restore test web assets into workspace
shell: bash
run: |
shopt -s dotglob
cp -a .test-web-assets-artifact/. ./
- name: Install Playwright Browsers
run: pnpm exec playwright install
working-directory: packages/software-factory
- name: Run Node tests
run: pnpm test:node
working-directory: packages/software-factory
- name: Serve test assets (icons + host dist)
run: |
mise run ci:serve-test-assets &
timeout 180 bash -c 'until curl -sf http://localhost:4200 > /dev/null && curl -sf http://localhost:4206 > /dev/null; do sleep 2; done'
- name: Run Playwright tests
run: pnpm test:playwright
working-directory: packages/software-factory
- name: Upload Playwright traces
if: ${{ !cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: software-factory-playwright-traces
path: packages/software-factory/test-results/**/trace.zip
retention-days: 30
if-no-files-found: ignore