Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
19 changes: 16 additions & 3 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ on:
env:
# each folder under the repo root that contains one of your CLIs
WORKSPACES: create-db create-pg create-postgres
CREATE_DB_WORKER_URL: ${{ secrets.CREATE_DB_WORKER_URL }}
CLAIM_DB_WORKER_URL: ${{ secrets.CLAIM_DB_WORKER_URL }}

jobs:
preview:
Expand Down Expand Up @@ -71,10 +73,21 @@ jobs:
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc

- name: 🚀 Bump & publish CLI previews
env:
CREATE_DB_WORKER_URL: ${{ secrets.CREATE_DB_WORKER_URL }}
CLAIM_DB_WORKER_URL: ${{ secrets.CLAIM_DB_WORKER_URL }}
run: |
# Resolve URLs with fallback
CREATE_DB_WORKER_URL="${{ steps.deploy-db.outputs.deployment-url || secrets.CREATE_DB_WORKER_URL }}"
CLAIM_DB_WORKER_URL="${{ steps.deploy-claim.outputs.deployment-url || secrets.CLAIM_DB_WORKER_URL }}"

# Persist for next steps
echo "CREATE_DB_WORKER_URL=$CREATE_DB_WORKER_URL" >> $GITHUB_ENV
echo "CLAIM_DB_WORKER_URL=$CLAIM_DB_WORKER_URL" >> $GITHUB_ENV

export CREATE_DB_WORKER_URL
export CLAIM_DB_WORKER_URL

echo "Using CREATE_DB_WORKER_URL=$CREATE_DB_WORKER_URL"
echo "Using CLAIM_DB_WORKER_URL=$CLAIM_DB_WORKER_URL"

for pkg in $WORKSPACES; do
cd "$pkg"
npm version prerelease \
Expand Down
136 changes: 43 additions & 93 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,61 +1,25 @@
# .github/workflows/release.yml
name: Release all CLIs & Deploy CF Workers
name: Release CLIs

on:
workflow_dispatch:
pull_request:
branches: [main]
types: [opened, synchronize]
push:
branches: [main]
branches:
- main

concurrency: ${{ github.workflow }}-${{ github.ref }}

env:
WORKSPACES: create-db create-pg create-postgres

jobs:
# 💾 On PRs: bump package.json versions & CHANGELOGs via Changesets
version:
if: ${{ github.event_name == 'pull_request' }}
release:
name: 🚀 Release CLIs
runs-on: ubuntu-latest
steps:
- name: 🛎️ Checkout full & tags
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: true

- name: 🤐 Disable Husky
run: echo "HUSKY=0" >> $GITHUB_ENV

- name: 📦 Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8

- name: 🔧 Install dependencies
run: pnpm install

- name: 🔄 Version & changelogs via Changesets
uses: changesets/action@v1
with:
version: "pnpm changeset version --yes"
commit: "chore(release): bump [skip ci]"
commitMode: "git-cli"
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# 🚀 On merges to main: aggregate CHANGELOGs, publish CLIs & deploy Workers
publish:
if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
needs: version
steps:
- name: 🛎️ Checkout full & tags
- name: 🛎️ Checkout Repo
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: true

- name: 🤐 Disable Husky
run: echo "HUSKY=0" >> $GITHUB_ENV
Expand All @@ -68,68 +32,54 @@ jobs:
- name: 🔧 Install dependencies
run: pnpm install

- name: 🔧 Install jq
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: ❌ Disable pnpm git-checks
run: pnpm config set git-checks false

# Copy README files before any version bump or publish
- name: 📄 Copy README to child CLIs
run: |
for pkg in $WORKSPACES; do
if [ "$pkg" != "create-db" ]; then
cp create-db/README.md "$pkg/README.md"
fi
for pkg in create-pg create-postgres; do
cp create-db/README.md "$pkg/README.md"
done

- name: 📑 Aggregate changelogs
id: aggregate
run: |
NEW_VERSION=$(jq -r '.version' create-db/package.json)
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
echo "# Release v$NEW_VERSION" > AGGREGATED_CHANGELOG.md
for pkg in $WORKSPACES; do
echo "## $pkg" >> AGGREGATED_CHANGELOG.md
sed -n "/^## $NEW_VERSION/,/^## /p" $pkg/CHANGELOG.md \
| sed '1d;$d' \
>> AGGREGATED_CHANGELOG.md
echo "" >> AGGREGATED_CHANGELOG.md
done
# Configure npm for publishing
- name: 🔑 Configure npm auth
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc

- name: 🚩 Create GitHub Release
uses: actions/create-release@v1
# Generate version updates with changesets (PR created if branch protected)
- name: 📝 Changesets Versioning
uses: changesets/action@v1
with:
tag_name: v${{ env.NEW_VERSION }}
release_name: Release v${{ env.NEW_VERSION }}
body_path: AGGREGATED_CHANGELOG.md
version: pnpm changeset version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: 🔑 Configure npm auth
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.CREATE_DB_TOKEN_NPM }}" > ~/.npmrc

- name: 🚀 Publish each CLI individually
# Publish packages to npm if changesets are applied
- name: 🚀 Publish Each CLI Package
if: steps.changesets.outputs.hasChangesets == 'false'
run: |
# Export secrets for CLI usage
export CREATE_DB_WORKER_URL="${{ secrets.CREATE_DB_WORKER_URL }}"
export CLAIM_DB_WORKER_URL="${{ secrets.CLAIM_DB_WORKER_URL }}"

echo "Using CREATE_DB_WORKER_URL=$CREATE_DB_WORKER_URL"
echo "Using CLAIM_DB_WORKER_URL=$CLAIM_DB_WORKER_URL"

# Publish each package
for pkg in $WORKSPACES; do
echo "Publishing $pkg..."
pnpm --filter "$pkg" publish --access public
done
echo "Publishing $pkg to npm..."
cd "$pkg"

# Stable patch bump
npm version patch --no-git-tag-version

# Publish to npm
pnpm publish --access public

# - name: ☁️ Deploy create-db-worker (production)
# uses: cloudflare/wrangler-action@v3
# with:
# apiToken: ${{ secrets.CF_API_TOKEN }}
# accountId: ${{ secrets.CF_ACCOUNT_ID }}
# environment: production
# workingDirectory: create-db-worker

# - name: ☁️ Deploy claim-db-worker (production)
# uses: cloudflare/wrangler-action@v3
# with:
# apiToken: ${{ secrets.CF_API_TOKEN }}
# accountId: ${{ secrets.CF_ACCOUNT_ID }}
# environment: production
# workingDirectory: claim-db-worker
cd - >/dev/null
done
env:
NODE_AUTH_TOKEN: ${{ secrets.CREATE_DB_TOKEN_NPM }}

- name: 🧹 Cleanup npm auth
if: ${{ always() }}
run: rm -f ~/.npmrc
4 changes: 1 addition & 3 deletions create-db-worker/worker-configuration.d.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
/* eslint-disable */
// Generated by Wrangler by running `wrangler types` (hash: 63ac3638913b0dc240976e75200d8232)
// Generated by Wrangler by running `wrangler types` (hash: 3f56097be8c168953b53c223c74e988f)
// Runtime types generated with workerd@1.20250617.0 2025-06-27
declare namespace Cloudflare {
interface Env {
CREATE_DB_RATE_LIMIT_KV: KVNamespace;
INTEGRATION_TOKEN: string;
CLIENT_SECRET: string;
CREATE_DB_DATASET: AnalyticsEngineDataset;
CREATE_DB_RATE_LIMITER: RateLimit;
DELETE_DB_WORKFLOW: Workflow;
Expand Down
Loading