11name : Release (feature branch)
22
33on :
4- push :
5- branches-ignore :
6- - main
7- pull_request : {}
4+ workflow_call :
5+ secrets :
6+ PLANETSCALE_CONNECTION_STRING :
7+ required : true
8+ NEON_CONNECTION_STRING :
9+ required : true
10+ NEON_HTTP_CONNECTION_STRING :
11+ required : true
12+ TIDB_CONNECTION_STRING :
13+ required : true
14+ XATA_API_KEY :
15+ required : true
16+ XATA_BRANCH :
17+ required : true
18+ LIBSQL_REMOTE_URL :
19+ required : true
20+ LIBSQL_REMOTE_TOKEN :
21+ required : true
22+ SQLITE_CLOUD_CONNECTION_STRING :
23+ required : true
24+ SQLITE_MANY_CLOUD_CONNECTION_STRING :
25+ required : true
826
927concurrency :
1028 group : feature-${{ github.workflow }}-${{ github.ref }}
3351 run : pnpm prisma generate --schema src/prisma/schema.prisma
3452 - name : Build all
3553 run : pnpm build:artifact
36-
37- # has to be after build step, otherwise turbo cache miss
38- - name : Apply version suffix to packages
39- shell : bash
40- run : |
41- set -euxo pipefail
42- suffix=$(git rev-parse --short HEAD)
43-
44- packages=(
45- "drizzle-orm"
46- "drizzle-kit"
47- "drizzle-zod"
48- "drizzle-seed"
49- "drizzle-typebox"
50- "drizzle-valibot"
51- "drizzle-arktype"
52- "eslint-plugin-drizzle"
53- )
54-
55- for pkg in "${packages[@]}"; do
56- pkg_dir="$pkg/dist"
57- package_json="$pkg_dir/package.json"
58-
59- if [[ ! -f "$package_json" ]]; then
60- echo "WARN: $package_json not found, skipping"
61- continue
62- fi
63-
64- base_version="$(jq -r '.version' "$package_json")"
65- new_version="${base_version}-${suffix}"
66-
67- echo "Setting $pkg dist version to $new_version"
68- jq --arg v "$new_version" '.version = $v' "$package_json" > "$package_json.tmp"
69- mv "$package_json.tmp" "$package_json"
70- done
71- # Upload compiled JS for tests to reuse
7254 - name : Upload build-dist
7355 uses : actions/upload-artifact@v4
7456 with :
@@ -231,9 +213,12 @@ jobs:
231213 LIBSQL_REMOTE_TOKEN : ${{ secrets.LIBSQL_REMOTE_TOKEN }}
232214 GEL_CONNECTION_STRING : gel://admin:password@localhost:56565/main
233215 SINGLESTORE_CONNECTION_STRING : singlestore://root:singlestore@localhost:33307/
216+ SINGLESTORE_MANY_CONNECTION_STRING : singlestore://root:singlestore@localhost:3308/;singlestore://root:singlestore@localhost:3309/;singlestore://root:singlestore@localhost:3310/;singlestore://root:singlestore@localhost:3311/
234217 COCKROACH_CONNECTION_STRING :
postgresql://[email protected] :26257/defaultdb?sslmode=disable 235218 MSSQL_CONNECTION_STRING : mssql://SA:drizzle123PASSWORD!@localhost:1433?encrypt=true&trustServerCertificate=true
236219 TEST_CONFIG_PATH_PREFIX : ./tests/cli/
220+ SQLITE_CLOUD_CONNECTION_STRING : ${{ secrets.SQLITE_CLOUD_CONNECTION_STRING }}
221+ SQLITE_MANY_CLOUD_CONNECTION_STRING : ${{ secrets.SQLITE_MANY_CLOUD_CONNECTION_STRING }}
237222 working-directory : integration-tests
238223 shell : bash
239224 run : |
@@ -307,9 +292,6 @@ jobs:
307292 if : github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
308293 runs-on : ubuntu-24.04
309294 timeout-minutes : 20
310- strategy :
311- matrix :
312- package : [drizzle-kit, drizzle-zod, drizzle-seed, drizzle-typebox, drizzle-valibot, drizzle-arktype, eslint-plugin-drizzle]
313295 steps :
314296 - uses : actions/checkout@v4
315297 - uses : pnpm/action-setup@v4
@@ -324,8 +306,14 @@ jobs:
324306 name : packages
325307 path : ./artifacts
326308 - name : Run @arethetypeswrong/cli
327- working-directory : ${{ matrix.package }}
328- run : bun --bun run ../attw-fork/src/run.ts ../artifacts/${{ matrix.package }}/package.tgz
309+ run : |
310+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-kit/package.tgz
311+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-zod/package.tgz
312+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-seed/package.tgz
313+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-typebox/package.tgz
314+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-valibot/package.tgz
315+ bun --bun run ./attw-fork/src/run.ts ./artifacts/drizzle-arktype/package.tgz
316+ bun --bun run ./attw-fork/src/run.ts ./artifacts/eslint-plugin-drizzle/package.tgz
329317
330318 attw-orm :
331319 needs : [prepare]
@@ -367,12 +355,13 @@ jobs:
367355 matrix :
368356 package : [drizzle-orm, drizzle-kit, drizzle-zod, drizzle-seed, drizzle-typebox, drizzle-valibot, drizzle-arktype, eslint-plugin-drizzle]
369357 steps :
370- - uses : actions/checkout@v4
358+ - uses : actions/checkout@v5
371359
372360 # don't specify registry url, so there's no .npmrc config file
373- - uses : actions/setup-node@v4
361+ - uses : actions/setup-node@v6
374362 with : { node-version: '24' }
375363
364+ # nuke, so npm can use OIDC
376365 - name : Remove temp npmrc
377366 run : rm -f "$NPM_CONFIG_USERCONFIG"
378367
@@ -389,9 +378,21 @@ jobs:
389378 shell : bash
390379 run : |
391380 set -euxo pipefail
392- version="$(tar -xOf ./artifacts/${{ matrix.package }}/package.tgz package/package.json | jq -r .version)"
393- tag="${{ github.ref_name }}"
394381
382+ _version="$(tar -xOf ./artifacts/${{ matrix.package }}/package.tgz package/package.json | jq -r .version)"
383+ tag="${{ github.ref_name }}"
384+ suffix=$(git rev-parse --short HEAD)
385+ version="$_version-$suffix"
386+ tmpdir="$(mktemp -d)"
387+ tar -xzf ./artifacts/${{ matrix.package }}/package.tgz -C "$tmpdir"
388+
389+ jq --arg v "$version" '.version = $v' \
390+ "$tmpdir/package/package.json" > "$tmpdir/package/package.json.tmp"
391+ mv "$tmpdir/package/package.json.tmp" "$tmpdir/package/package.json"
392+
393+ tar -czf ./artifacts/${{ matrix.package }}/package.tgz -C "$tmpdir" package
394+ rm -rf "$tmpdir"
395+
395396 is_published="$(npm view ${{ matrix.package }} versions --json | jq -r '.[] | select(. == "'$version'") | . == "'$version'"')"
396397 if [[ "$is_published" == "true" ]]; then
397398 echo "\`${{ matrix.package }}@$version\` already published, tagging \`$tag\`" >> $GITHUB_STEP_SUMMARY
@@ -403,5 +404,5 @@ jobs:
403404 shell : bash
404405 run : |
405406 set -euxo pipefail
406- pnpm publish ./artifacts/${{ matrix.package }}/package.tgz --tag "${{ steps.checks.outputs.tag }}"
407- echo "npm: \`${{ matrix.package }}@${{ steps.checks.outputs.tag }} | ${{ steps.checks.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
407+ npm publish ./artifacts/${{ matrix.package }}/package.tgz --tag "${{ steps.checks.outputs.tag }}"
408+ echo "npm: \`${{ matrix.package }}@${{ steps.checks.outputs.tag }} | ${{ steps.checks.outputs.version }}\`" >> $GITHUB_STEP_SUMMARY
0 commit comments