Skip to content

feat(otel): add instrumentation package #29

feat(otel): add instrumentation package

feat(otel): add instrumentation package #29

Workflow file for this run

name: Pull Request
on:
workflow_dispatch:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
migrations:
name: Check Migrations
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Build migrations
run: bash ./scripts/build-migrations.sh
- name: Format
run: bun run oxfmt
- name: Check for changes
run: |
git diff --exit-code || \
(echo "Error: Generated migration files are out of date. Run 'just build-migrations && just format' and commit the changes." && exit 1)
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Format
run: bun run oxfmt --check
actionlint:
name: Lint GitHub Actions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download actionlint
id: get_actionlint
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
shell: bash
- name: Check workflow files
run: ${{ steps.get_actionlint.outputs.executable }} -color
shell: bash
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Lint
run: bun run oxlint --type-aware --deny-warnings
typecheck:
name: Typecheck
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Typecheck
working-directory: packages/pgconductor-js
run: bun run typecheck
unit-test:
name: Unit Test
runs-on: ubuntu-22.04
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Unit Tests
working-directory: packages/pgconductor-js
run: bun run test:unit
integration-test:
name: Integration Test (Postgres ${{ matrix.pg }})
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
pg: [15, 16, 17]
services:
postgres:
image: postgres:${{ matrix.pg }}
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
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install dependencies
run: bun install
- name: Integration Tests
working-directory: packages/pgconductor-js
run: bun run test:integration
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres