Skip to content
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
1be039a
feat: add secure release pipeline (prepare-release workflows)
pkosiec Apr 8, 2026
d24a211
fix: remove stale config refs, split meta artifact, TS refactor
pkosiec Apr 8, 2026
664d56b
fix: use default ~/.npmrc path for JFrog setup in prepare-release
pkosiec Apr 8, 2026
a62feaa
fix: use pnpm exec tsx to match CI conventions
pkosiec Apr 8, 2026
36fe1c6
fix(appkit): trigger prepare-release pipeline test
pkosiec Apr 8, 2026
8c3111e
fix: enable getLatestTagFromAllRefs for PR branch compatibility
pkosiec Apr 8, 2026
290d9ce
fix: checkout PR head ref to fix detached HEAD for release-it
pkosiec Apr 8, 2026
67fd3bf
fix: correct docs and add missing paths filter for lakebase PR trigger
pkosiec Apr 8, 2026
7cf8e92
refactor: add finalize-release.ts and enhance publish-template-tag.ts
pkosiec Apr 8, 2026
af9527d
refactor: use stream-to-packages map in finalize-release.ts
pkosiec Apr 8, 2026
82a5824
fix: use public npm registry in publish-template-tag.ts
pkosiec Apr 8, 2026
b68dd05
revert: remove inline registry flag from publish-template-tag.ts
pkosiec Apr 8, 2026
f1041fb
fix: allow @databricks/lakebase changes in template lockfile diff check
pkosiec Apr 8, 2026
38dccd5
fix: add appkit-ui to lockfile allowlist and DCO sign-off to template…
pkosiec Apr 8, 2026
fb2fc3a
test: push to HEAD instead of hardcoded main (revert or keep after te…
pkosiec Apr 8, 2026
3644af4
refactor: push to HEAD in template sync, remove PR triggers and temp …
pkosiec Apr 8, 2026
6770c59
fix: remove lockfile diff check from template sync
pkosiec Apr 9, 2026
cceb3dc
fix: harden template dep pinning and changelog insertion
pkosiec Apr 9, 2026
4b20a2e
fix: use stream-aware changelog path in finalize-release
pkosiec Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ jobs:
run: pnpm run knip
- name: Run License Check
run: pnpm run check:licenses
- name: Check template deps are pinned
run: pnpm exec tsx tools/check-template-deps.ts

test:
name: Unit Tests
Expand Down
105 changes: 105 additions & 0 deletions .github/workflows/prepare-release-lakebase.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Prepare Release Lakebase

on:
push:
branches:
- main
paths:
- 'packages/lakebase/**'

concurrency:
group: prepare-release-lakebase
cancel-in-progress: true

permissions:
contents: read
id-token: write

jobs:
prepare:
runs-on:
group: databricks-protected-runner-group
labels: linux-ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0

- name: Setup JFrog npm
uses: ./.github/actions/setup-jfrog-npm

- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0

- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 24
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Check for releasable commits
id: version
working-directory: packages/lakebase
run: |
VERSION=$(pnpm exec release-it --release-version --ci) || true
if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Next version: $VERSION"
else
echo "No releasable commits — skipping release preparation"
echo "version=" >> "$GITHUB_OUTPUT"
fi

- name: Generate changelog
if: steps.version.outputs.version != ''
working-directory: packages/lakebase
run: |
pnpm exec release-it ${{ steps.version.outputs.version }} --ci
- name: Build
if: steps.version.outputs.version != ''
run: pnpm --filter=@databricks/lakebase build:package

- name: Dist
if: steps.version.outputs.version != ''
run: pnpm --filter=@databricks/lakebase dist

- name: SBOM
if: steps.version.outputs.version != ''
run: pnpm --filter=@databricks/lakebase release:sbom

- name: Pack
if: steps.version.outputs.version != ''
run: npm pack packages/lakebase/tmp

- name: Generate SHA256
if: steps.version.outputs.version != ''
run: sha256sum *.tgz > SHA256SUMS

- name: Write version file
if: steps.version.outputs.version != ''
run: echo "${{ steps.version.outputs.version }}" > VERSION

- name: Upload release metadata
if: steps.version.outputs.version != ''
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: lakebase-release-meta-${{ github.run_number }}
retention-days: 7
path: VERSION

- name: Upload release artifacts
if: steps.version.outputs.version != ''
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: lakebase-release-${{ github.run_number }}
retention-days: 7
path: |
*.tgz
packages/lakebase/changelog-diff.md
VERSION
SHA256SUMS
114 changes: 114 additions & 0 deletions .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Prepare Release

on:
push:
branches:
- main

concurrency:
group: prepare-release
cancel-in-progress: true

permissions:
contents: read
id-token: write

jobs:
prepare:
runs-on:
group: databricks-protected-runner-group
labels: linux-ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
with:
fetch-depth: 0

- name: Setup JFrog npm
uses: ./.github/actions/setup-jfrog-npm

- name: Setup pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0

- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 24
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Check for releasable commits
id: version
run: |
VERSION=$(pnpm exec release-it --release-version --ci) || true
if [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Next version: $VERSION"
else
echo "No releasable commits — skipping release preparation"
echo "version=" >> "$GITHUB_OUTPUT"
fi

- name: Generate changelog
if: steps.version.outputs.version != ''
run: |
pnpm exec release-it ${{ steps.version.outputs.version }} --ci
- name: Sync versions
if: steps.version.outputs.version != ''
run: pnpm exec tsx tools/sync-versions.ts "${{ steps.version.outputs.version }}"

- name: Build
if: steps.version.outputs.version != ''
run: pnpm build && pnpm --filter=docs build

- name: Dist
if: steps.version.outputs.version != ''
run: |
pnpm --filter=@databricks/appkit dist
pnpm --filter=@databricks/appkit-ui dist

- name: SBOM
if: steps.version.outputs.version != ''
run: pnpm release:sbom

- name: Build NOTICE
if: steps.version.outputs.version != ''
run: pnpm build:notice

- name: Pack
if: steps.version.outputs.version != ''
run: |
npm pack packages/appkit/tmp
npm pack packages/appkit-ui/tmp

- name: Generate SHA256
if: steps.version.outputs.version != ''
run: sha256sum *.tgz > SHA256SUMS

- name: Write version file
if: steps.version.outputs.version != ''
run: echo "${{ steps.version.outputs.version }}" > VERSION

- name: Upload release metadata
if: steps.version.outputs.version != ''
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: appkit-release-meta-${{ github.run_number }}
retention-days: 7
path: VERSION

- name: Upload release artifacts
if: steps.version.outputs.version != ''
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: appkit-release-${{ github.run_number }}
retention-days: 7
path: |
*.tgz
changelog-diff.md
VERSION
SHA256SUMS
NOTICE.md
78 changes: 0 additions & 78 deletions .github/workflows/release-lakebase.yml

This file was deleted.

Loading
Loading