Skip to content

chore(release): 12.96.0 #1584

chore(release): 12.96.0

chore(release): 12.96.0 #1584

name: Build source code and deploy
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
tags:
- '*'
jobs:
# Tests already passed before tag was created, so just build and deploy
supabase_deploy:
runs-on: ubuntu-latest
name: Build code and deploy to Supabase
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Set environment variable
run: |
if [[ ${{ github.ref }} == *-alpha* ]]; then
echo "SUPA_ENV=ALPHA" >> $GITHUB_ENV
else
echo "SUPA_ENV=PROD" >> $GITHUB_ENV
fi
- name: Set Supabase credentials
run: |
echo "SUPABASE_DB_PASSWORD=${{ secrets[format('SUPABASE_DB_PASS_{0}', env.SUPA_ENV)] }}" >> $GITHUB_ENV
echo "SUPABASE_PROJECT_ID=${{ secrets[format('SUPABASE_PROJECT_ID_{0}', env.SUPA_ENV)] }}" >> $GITHUB_ENV
- name: Install dependencies
run: bun install
- name: Install Supabase CLI
uses: supabase/setup-cli@v1
with:
version: latest
- name: Show Supabase CLI version
run: supabase --version
- name: Prepare Supabase
run: supabase link --project-ref ${{ env.SUPABASE_PROJECT_ID }}
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_TOKEN }}
- name: Apply Supabase Migrations
run: supabase db push
- name: Update functions
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_TOKEN }}
run: supabase functions deploy
deploy_webapp:
needs: supabase_deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
filter: blob:none
- uses: actions/setup-node@v6
with:
node-version: 24
- name: Setup bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Set environment variable
run: |
if [[ ${{ github.ref }} == *-alpha* ]]; then
echo "ENV=dev" >> $GITHUB_ENV
echo "CHANNEL=dev" >> $GITHUB_ENV
else
echo "ENV=prod" >> $GITHUB_ENV
echo "CHANNEL=production" >> $GITHUB_ENV
fi
- name: Build
run: bun ${{ env.ENV == 'prod' && 'build:mobile' || 'build:dev:mobile' }}
env:
VITE_VAPID_KEY: ${{ secrets.VITE_VAPID_KEY }}
VITE_FIREBASE_CONFIG: ${{ secrets.VITE_FIREBASE_CONFIG }}
- name: Generate AI changelog
id: changelog
uses: mistricky/[email protected]
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
model: claude-sonnet-4-5-20250929
- uses: actions/setup-node@v6
with:
node-version: 24
- name: Publish CF console
run: bun run deploy:cloudflare:console:${{ env.ENV }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
- name: Deploy to Capgo
run: bunx @capgo/cli@latest bundle upload -a ${{ secrets.CAPGO_TOKEN }} --channel ${{ env.CHANNEL }} --delta
env:
CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
- name: Create GitHub release
id: create_release
uses: softprops/action-gh-release@v2
with:
body: |
## 🆕 Changelog
${{ steps.changelog.outputs.result }}
---
🔗 **Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.changelog.outputs.from_tag }}...${{ steps.changelog.outputs.to_tag }}
make_latest: true
token: '${{ secrets.PERSONAL_ACCESS_TOKEN }}'
prerelease: ${{ contains(github.ref, '-alpha.') }}
deploy_api:
needs: supabase_deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Set environment variable
run: |
if [[ ${{ github.ref }} == *-alpha* ]]; then
echo "ENV=dev" >> $GITHUB_ENV
else
echo "ENV=prod" >> $GITHUB_ENV
fi
- name: Deploy CF Worker API
run: bun run deploy:cloudflare:api:${{ env.ENV }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
deploy_files:
needs: supabase_deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Set environment variable
run: |
if [[ ${{ github.ref }} == *-alpha* ]]; then
echo "ENV=dev" >> $GITHUB_ENV
else
echo "ENV=prod" >> $GITHUB_ENV
fi
- name: Deploy CF Worker Files
run: bun run deploy:cloudflare:files:${{ env.ENV }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
deploy_plugin_regions:
needs: supabase_deploy
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
region: [eu, as, us, sa, oc, af, me, hk]
include:
- region: eu
region_label: Europe (EU)
cf_target: plugin_eu
- region: as
region_label: Asia (AS)
cf_target: plugin_as
- region: us
region_label: United States (US)
cf_target: plugin_na
- region: sa
region_label: South America (SA)
cf_target: plugin_sa
- region: oc
region_label: Oceania (OC)
cf_target: plugin_oc
- region: af
region_label: Africa (AF)
cf_target: plugin_af
- region: me
region_label: Middle East (ME)
cf_target: plugin_me
- region: hk
region_label: Hong Kong (HK)
cf_target: plugin_hk
name: Deploy CF Worker Plugin (${{ matrix.region_label }})
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Set environment variable
run: |
if [[ ${{ github.ref }} == *-alpha* ]]; then
echo "ENV=dev" >> $GITHUB_ENV
else
echo "ENV=prod" >> $GITHUB_ENV
fi
- name: Deploy CF Worker Plugin
run: bun run deploy:cloudflare:${{ matrix.cf_target }}:${{ env.ENV }}
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}