diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..125d56a --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,55 @@ +name: XTP CI + +on: + workflow_dispatch: + push: + +jobs: + build: + runs-on: ubuntu-latest + + services: + postgres: + image: postgres + env: + POSTGRES_PASSWORD: postgres + POSTGRES_USER: postgres + POSTGRES_DB: postgres + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 + env: + PGURL: postgres://postgres:postgres@localhost:5432/postgres + FORCE_PRETTY_OUTPUT: true + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '20.x' + + - name: cache npm dependencies + uses: actions/cache@v4 + with: + path: ~/.npm + key: ${{ runner.os }}-discordbot-npm-cache-${{ hashFiles('service/api/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-discordbot-npm-cache- + + - name: install deps + run: | + npm ci + + - name: migrate + run: | + npm run migrate + + - name: run tests + run: | + TEST_LOG=1 npm t + diff --git a/package-lock.json b/package-lock.json index ad230b7..e52e049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "ISC", "dependencies": { "@dylibso/xtp": "0.0.0-rc4", - "@electric-sql/pglite": "^0.1.1", "@extism/extism": "^1.0.2", "@fastify/cookie": "^9.3.1", "@fastify/oauth2": "^7.8.0", @@ -96,11 +95,6 @@ "cacache": "^18.0.2" } }, - "node_modules/@electric-sql/pglite": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.1.1.tgz", - "integrity": "sha512-7tJNIJBXuiuVl6Y9ehwv9mTlQlPeQbQ7wIKn49eorToPlNnkYnBzVWpOOTkNqv6Xu4dz75vl3S/9BmlfqCqM1w==" - }, "node_modules/@extism/extism": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@extism/extism/-/extism-1.0.2.tgz", diff --git a/package.json b/package.json index 28f3651..a1be121 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ }, "dependencies": { "@dylibso/xtp": "0.0.0-rc4", - "@electric-sql/pglite": "^0.1.1", "@extism/extism": "^1.0.2", "@fastify/cookie": "^9.3.1", "@fastify/oauth2": "^7.8.0", diff --git a/src/db.ts b/src/db.ts index c2ceb4e..cc289ea 100644 --- a/src/db.ts +++ b/src/db.ts @@ -12,26 +12,19 @@ export async function getDatabaseConnection() { return db } - if (!PGURL.startsWith('file://')) { - db = new pg.Pool({ connectionString: PGURL }) - - db.transaction = async (fn: (db: pg.Client) => Promise) => { - const client = await db.connect() - await client.query(`BEGIN;`) - try { - const xs = await fn(client) - await client.query(`COMMIT;`) - return xs - } catch { - await client.query(`ROLLBACK;`) - } - }; - return db - } - - const { PGlite } = await import('@electric-sql/pglite') - db = new PGlite(PGURL) + db = new pg.Pool({ connectionString: PGURL }) + db.transaction = async (fn: (db: pg.Client) => Promise) => { + const client = await db.connect() + await client.query(`BEGIN;`) + try { + const xs = await fn(client) + await client.query(`COMMIT;`) + return xs + } catch { + await client.query(`ROLLBACK;`) + } + }; return db } diff --git a/src/migrations.ts b/src/migrations.ts index 3d4d8cb..1c92a59 100644 --- a/src/migrations.ts +++ b/src/migrations.ts @@ -40,7 +40,7 @@ migrations().then(async last => { console.log(`ran up to ${last}`) const pg = await getDatabaseConnection() - pg.close() + pg.end() }).catch(err => { console.error(err.stack) process.exit(1)