File tree Expand file tree Collapse file tree 8 files changed +68
-1
lines changed
Expand file tree Collapse file tree 8 files changed +68
-1
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,9 @@ concurrency:
1010 group: ci-${{ github.ref }}
1111 cancel-in-progress: false
1212
13+ permissions:
14+ contents: read
15+
1316jobs:
1417 test-build:
1518 name: Test and Build
@@ -278,3 +281,30 @@ jobs:
278281 if: needs.check-docs-changes.outputs.docs_changed == 'true'
279282 uses: ./.github/workflows/docs-embeddings.yml
280283 secrets: inherit
284+
285+ # Create GitHub Release (only for version commits on main, after all builds complete)
286+ create-release:
287+ name: Create GitHub Release
288+ runs-on: blacksmith-4vcpu-ubuntu-2404
289+ needs: [create-ghcr-manifests, detect-version]
290+ if: needs.detect-version.outputs.is_release == 'true'
291+ permissions:
292+ contents: write
293+ steps:
294+ - name: Checkout code
295+ uses: actions/checkout@v4
296+ with:
297+ fetch-depth: 0
298+
299+ - name: Setup Bun
300+ uses: oven-sh/setup-bun@v2
301+ with:
302+ bun-version: latest
303+
304+ - name: Install dependencies
305+ run: bun install --frozen-lockfile
306+
307+ - name: Create release
308+ env:
309+ GH_PAT: ${{ secrets.GITHUB_TOKEN }}
310+ run: bun run scripts/create-single-release.ts ${{ needs.detect-version.outputs.version }}
Original file line number Diff line number Diff line change 44 workflow_call:
55 workflow_dispatch: # Allow manual triggering
66
7+ permissions:
8+ contents: read
9+
710jobs:
811 process-docs-embeddings:
912 name: Process Documentation Embeddings
Original file line number Diff line number Diff line change 44 workflow_call:
55 workflow_dispatch:
66
7+ permissions:
8+ contents: read
9+
710jobs:
811 migrate:
912 name: Apply Database Migrations
Original file line number Diff line number Diff line change 66 paths:
77 - 'packages/cli/**'
88
9+ permissions:
10+ contents: read
11+
912jobs:
1013 publish-npm:
1114 runs-on: blacksmith-4vcpu-ubuntu-2404
Original file line number Diff line number Diff line change 66 paths:
77 - 'packages/python-sdk/**'
88
9+ permissions:
10+ contents: write
11+
912jobs:
1013 publish-pypi:
1114 runs-on: blacksmith-4vcpu-ubuntu-2404
Original file line number Diff line number Diff line change 66 paths:
77 - 'packages/ts-sdk/**'
88
9+ permissions:
10+ contents: write
11+
912jobs:
1013 publish-npm:
1114 runs-on: blacksmith-4vcpu-ubuntu-2404
Original file line number Diff line number Diff line change 44 workflow_call:
55 workflow_dispatch:
66
7+ permissions:
8+ contents: read
9+
710jobs:
811 test-build:
912 name: Test and Build
Original file line number Diff line number Diff line change @@ -197,7 +197,7 @@ async function getCommitsBetweenVersions(
197197 const commitEntries = gitLog.split('\n').filter((line) => line.trim())
198198
199199 const nonVersionCommits = commitEntries.filter((line) => {
200- const [hash , message] = line.split('|')
200+ const [, message] = line.split('|')
201201 const isVersionCommit = message.match(/^v\d+\.\d+/)
202202 if (isVersionCommit) {
203203 console.log(`⏭️ Skipping version commit: ${message.substring(0, 50)}...`)
@@ -369,6 +369,25 @@ async function main() {
369369 console.log(`ℹ️ No previous version found (this might be the first release)`)
370370 }
371371
372+ try {
373+ const existingRelease = await octokit.rest.repos.getReleaseByTag({
374+ owner: REPO_OWNER,
375+ repo: REPO_NAME,
376+ tag: targetVersion,
377+ })
378+ if (existingRelease.data) {
379+ console.log(`ℹ️ Release ${targetVersion} already exists, skipping creation`)
380+ console.log(
381+ `🔗 View release: https://github.com/${REPO_OWNER}/${REPO_NAME}/releases/tag/${targetVersion}`
382+ )
383+ return
384+ }
385+ } catch (error: any) {
386+ if (error.status !== 404) {
387+ throw error
388+ }
389+ }
390+
372391 const releaseBody = await generateReleaseBody(versionCommit, previousCommit || undefined)
373392
374393 console.log(`🚀 Creating GitHub release for ${targetVersion}...`)
You can’t perform that action at this time.
0 commit comments