Files
AFFiNE-Mirror/.github/actions/server-test-env/action.yml
T

55 lines
1.9 KiB
YAML

name: 'Prepare Server Test Environment'
description: 'Prepare Server Test Environment'
inputs:
indexer-provider:
description: 'Search provider used by the server test runtime'
required: false
default: embedded
runs:
using: 'composite'
steps:
- name: Initialize database
shell: bash
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Run init-db script
shell: bash
env:
NODE_ENV: test
run: |
yarn affine @affine/server prisma generate
yarn affine @affine/server data-migration admit-legacy-context-blobs
yarn affine @affine/server prisma migrate deploy
yarn affine @affine/server data-migration run
- name: Import config
shell: bash
run: |
case '${{ inputs.indexer-provider }}' in
embedded)
default_indexer='{"enabled":true,"provider":{"type":"embedded","endpoint":""}}'
;;
elasticsearch)
default_indexer='{"enabled":true,"provider":{"type":"elasticsearch","endpoint":"http://localhost:9200"}}'
;;
manticoresearch)
default_indexer='{"enabled":true,"provider":{"type":"manticoresearch","endpoint":"http://localhost:9308"}}'
;;
*)
echo "Unsupported test indexer provider: ${{ inputs.indexer-provider }}" >&2
exit 1
;;
esac
if [[ -n "${SERVER_CONFIG:-}" ]]; then
jq --argjson indexer "$default_indexer" '.indexer = $indexer' <<<"$SERVER_CONFIG" > ./packages/backend/server/config.json
else
jq -n --argjson indexer "$default_indexer" '{indexer: $indexer}' > ./packages/backend/server/config.json
fi