75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
name: Den DB Check
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- ".github/workflows/den-db-check.yml"
|
|
- ".github/workflows/den-db-migrate.yml"
|
|
- ".github/workflows/publish-ee-images.yml"
|
|
- "ee/apps/den-api/package.json"
|
|
- "ee/apps/den-api/scripts/build.mjs"
|
|
- "ee/apps/den-api/src/automations/**"
|
|
- "ee/apps/den-api/src/routes/automations/**"
|
|
- "ee/packages/den-db/**"
|
|
- "packages/automations/**"
|
|
- "packaging/docker/Dockerfile.den"
|
|
- "packaging/helm/openwork-ee/values.yaml"
|
|
- "packaging/helm/openwork-ee/templates/migration-job.yaml"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
migrations-in-sync:
|
|
name: Schema and migrations in sync
|
|
runs-on: blacksmith-4vcpu-ubuntu-2204
|
|
services:
|
|
mysql:
|
|
image: mysql:8
|
|
env:
|
|
MYSQL_ROOT_PASSWORD: repro
|
|
MYSQL_DATABASE: mysql
|
|
ports:
|
|
- 33062:3306
|
|
options: >-
|
|
--health-cmd="mysqladmin ping -h 127.0.0.1 -uroot -prepro"
|
|
--health-interval=10s
|
|
--health-timeout=5s
|
|
--health-retries=10
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 24
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 11.4.0
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --filter "@openwork-ee/den-db..."
|
|
|
|
- name: Generate migrations from schema
|
|
run: pnpm --filter @openwork-ee/den-db db:generate
|
|
|
|
- name: Run migration readiness tests
|
|
run: pnpm --filter @openwork-ee/den-db test
|
|
env:
|
|
DEN_DB_MYSQL_TEST_URL: mysql://root:repro@127.0.0.1:33062/mysql
|
|
|
|
- name: Fail if schema changed without a committed migration
|
|
run: |
|
|
set -euo pipefail
|
|
changes="$(git status --porcelain -- ee/packages/den-db/drizzle)"
|
|
if [ -n "$changes" ]; then
|
|
echo "$changes"
|
|
echo "::error::Schema changed without a committed migration. Run 'pnpm --filter @openwork-ee/den-db db:generate' locally and commit the generated files in ee/packages/den-db/drizzle."
|
|
exit 1
|
|
fi
|
|
echo "Migrations are in sync with the schema."
|