Skip to content

chore(main): release api 0.127.1 (#1553) #1358

chore(main): release api 0.127.1 (#1553)

chore(main): release api 0.127.1 (#1553) #1358

name: Release Please
on:
workflow_dispatch:
push:
branches:
- main
# Prevent multiple simultaneous runs
concurrency:
group: release-please-${{ github.ref }}
permissions:
contents: read
jobs:
release-please:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
outputs:
react-sdk--release_created: ${{ steps.release.outputs.react-sdk--release_created }}
cli--release_created: ${{ steps.release.outputs.cli--release_created }}
create-tambo-app--release_created: ${{ steps.release.outputs.create-tambo-app--release_created }}
docs--release_created: ${{ steps.release.outputs.docs--release_created }}
showcase--release_created: ${{ steps.release.outputs.showcase--release_created }}
apps/web--release_created: ${{ steps.release.outputs['apps/web--release_created'] }}
apps/api--release_created: ${{ steps.release.outputs['apps/api--release_created'] }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- name: Release Please
id: release
uses: googleapis/release-please-action@v4
with:
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
manifest-file: .release-please-manifest.json
# NPM Package Publishing - React SDK
publish-react-sdk:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.react-sdk--release_created == 'true' }}
permissions:
contents: read
id-token: write # Required for OIDC publishing to NPM
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
registry-url: "https://registry.npmjs.org"
- name: Pin NPM version
run: npm install -g npm@11.7.0
- name: Install dependencies
run: npm install
- name: Build
run: npx turbo build --filter=@tambo-ai/react
- name: Publish @tambo-ai/react to npm
working-directory: ./react-sdk
run: npm publish --access public
# NPM Package Publishing - CLI
publish-cli:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.cli--release_created == 'true' }}
permissions:
contents: read
id-token: write # Required for OIDC publishing to NPM
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
registry-url: "https://registry.npmjs.org"
- name: Pin NPM version
run: npm install -g npm@11.7.0
- name: Install dependencies
run: npm install
- name: Build
run: npx turbo build --filter=tambo
- name: Publish tambo to npm
working-directory: ./cli
run: npm publish --access public
# NPM Package Publishing - Create Tambo App
publish-create-tambo-app:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.create-tambo-app--release_created == 'true' }}
permissions:
contents: read
id-token: write # Required for OIDC publishing to NPM
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: "22"
cache: "npm"
registry-url: "https://registry.npmjs.org"
- name: Pin NPM version
run: npm install -g npm@11.7.0
- name: Install dependencies
run: npm install
- name: Build
run: npx turbo build --filter=create-tambo-app
- name: Publish create-tambo-app to npm
working-directory: ./create-tambo-app
run: npm publish --access public
# Web App Deployment
deploy-web:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs['apps/web--release_created'] == 'true' }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
- name: Setup Git User
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "actions@github.com"
- name: Merge main into deploy-web (for Sentry release)
run: |
git checkout deploy-web
git merge --no-ff main -m "chore: merge main into deploy-web for release ${{ needs.release-please.outputs.tag_name }}"
git push origin deploy-web
# API Deployment
deploy-api:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs['apps/api--release_created'] == 'true' }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
- name: Setup Git User
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "actions@github.com"
- name: Merge main into deploy-api (for Sentry release)
run: |
git checkout deploy-api
git merge --no-ff main -m "chore: merge main into deploy-api for release ${{ needs.release-please.outputs.tag_name }}"
git push origin deploy-api
# Docs Deployment
deploy-docs:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.docs--release_created == 'true' }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
- name: Setup Git User
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "actions@github.com"
- name: Merge main into deploy-docs
run: |
git checkout deploy-docs
git merge --no-ff main -m "chore: merge main into deploy-docs for release ${{ needs.release-please.outputs.tag_name }}"
git push origin deploy-docs
# Showcase Deployment
deploy-showcase:
needs: release-please
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.showcase--release_created == 'true' }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
- name: Setup Git User
run: |
git config --global user.name "GitHub Actions Bot"
git config --global user.email "actions@github.com"
- name: Merge main into deploy-showcase
run: |
git checkout deploy-showcase
git merge --no-ff main -m "chore: merge main into deploy-showcase for release ${{ needs.release-please.outputs.tag_name }}"
git push origin deploy-showcase
sentry-release:
name: Create Sentry Release
needs: release-please
runs-on: ubuntu-latest
steps:
- name: Install Sentry CLI
run: |
curl -sL https://sentry.io/get-cli/ | bash
- uses: actions/checkout@v4
with:
fetch-depth: 100
token: ${{ secrets.RELEASE_PLEASE_TOKEN }}
- name: Create Sentry Release
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: tambo-ai
SENTRY_PROJECT: tambo-cloud
run: |
VERSION=$(sentry-cli releases propose-version)
sentry-cli releases new "$VERSION"
sentry-cli releases set-commits "$VERSION" --auto
sentry-cli releases finalize "$VERSION"