Skip to content

chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0 #102

chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0

chore(deps-dev): bump js-yaml from 4.1.1 to 4.3.0 #102

name: Integration Tests
on:
push:
branches: [main, v2.0.0]
pull_request:
branches: [main, v2.0.0]
workflow_dispatch:
# Serialize all runs against the shared Aurora cluster. Without this,
# concurrent PRs and main pushes race on table create/drop in their
# beforeAll/afterAll hooks, producing spurious "Table doesn't exist"
# failures. cancel-in-progress: false so we never interrupt a run
# mid-afterAll and leave the cluster in a half-cleaned state.
concurrency:
group: integration-tests
cancel-in-progress: false
jobs:
integration-test:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
id-token: write
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linting
run: npm run lint
- name: Build project
run: npm run build
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
aws-region: ${{ secrets.AWS_REGION }}
role-session-name: GitHubActions-Publish
- name: Run MySQL core integration tests
env:
MYSQL_RESOURCE_ARN: ${{ secrets.MYSQL_RESOURCE_ARN }}
MYSQL_SECRET_ARN: ${{ secrets.MYSQL_SECRET_ARN }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/mysql.int.test.ts
- name: Run PostgreSQL core integration tests
env:
POSTGRES_RESOURCE_ARN: ${{ secrets.POSTGRES_RESOURCE_ARN }}
POSTGRES_SECRET_ARN: ${{ secrets.POSTGRES_SECRET_ARN }}
POSTGRES_DATABASE: ${{ secrets.POSTGRES_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/postgres.int.test.ts
- name: Run MySQL2 compatibility layer tests
env:
MYSQL_RESOURCE_ARN: ${{ secrets.MYSQL_RESOURCE_ARN }}
MYSQL_SECRET_ARN: ${{ secrets.MYSQL_SECRET_ARN }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/mysql2-compat.int.test.ts
- name: Run PostgreSQL (pg) compatibility layer tests
env:
POSTGRES_RESOURCE_ARN: ${{ secrets.POSTGRES_RESOURCE_ARN }}
POSTGRES_SECRET_ARN: ${{ secrets.POSTGRES_SECRET_ARN }}
POSTGRES_DATABASE: ${{ secrets.POSTGRES_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/pg-compat.int.test.ts
- name: Run Drizzle ORM MySQL integration tests
env:
MYSQL_RESOURCE_ARN: ${{ secrets.MYSQL_RESOURCE_ARN }}
MYSQL_SECRET_ARN: ${{ secrets.MYSQL_SECRET_ARN }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/drizzle-mysql.int.test.ts
- name: Run Drizzle ORM PostgreSQL integration tests
env:
POSTGRES_RESOURCE_ARN: ${{ secrets.POSTGRES_RESOURCE_ARN }}
POSTGRES_SECRET_ARN: ${{ secrets.POSTGRES_SECRET_ARN }}
POSTGRES_DATABASE: ${{ secrets.POSTGRES_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/drizzle-pg.int.test.ts
- name: Run Kysely MySQL integration tests
env:
MYSQL_RESOURCE_ARN: ${{ secrets.MYSQL_RESOURCE_ARN }}
MYSQL_SECRET_ARN: ${{ secrets.MYSQL_SECRET_ARN }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/kysely-mysql.int.test.ts
- name: Run Kysely PostgreSQL integration tests
env:
POSTGRES_RESOURCE_ARN: ${{ secrets.POSTGRES_RESOURCE_ARN }}
POSTGRES_SECRET_ARN: ${{ secrets.POSTGRES_SECRET_ARN }}
POSTGRES_DATABASE: ${{ secrets.POSTGRES_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/kysely-pg.int.test.ts
- name: Run Knex MySQL integration tests
env:
MYSQL_RESOURCE_ARN: ${{ secrets.MYSQL_RESOURCE_ARN }}
MYSQL_SECRET_ARN: ${{ secrets.MYSQL_SECRET_ARN }}
MYSQL_DATABASE: ${{ secrets.MYSQL_DATABASE }}
AWS_REGION: ${{ secrets.AWS_REGION }}
run: npx vitest run integration-tests/knex-mysql.int.test.ts
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: integration-test-results
path: |
coverage/
test-results/
retention-days: 7