From 819e8a1130e6f33286b44145c039dd84afd49520 Mon Sep 17 00:00:00 2001 From: Billy Trend Date: Thu, 16 Jan 2025 13:09:33 +0000 Subject: [PATCH 1/3] Trigger fern from typescript --- fern/apis/sdks/generators.yml | 8 ++-- packages/autorelease/src/create-releases.ts | 41 ++++++++++++++++++++- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/fern/apis/sdks/generators.yml b/fern/apis/sdks/generators.yml index 61481a21..bf8cb6c0 100644 --- a/fern/apis/sdks/generators.yml +++ b/fern/apis/sdks/generators.yml @@ -1,7 +1,7 @@ api: path: ../../../cohere-openapi.yaml groups: - node-sdk: + typescript: audiences: - public - v2-beta @@ -36,7 +36,7 @@ groups: "@aws-sdk/signature-v4": "^3.374.0" "convict": "^6.2.4" - go-sdk: + go: audiences: - public - v2-beta @@ -49,7 +49,7 @@ groups: config: union: v1 includeLegacyClientOptions: true - java-sdk: + java: audiences: - public - v2-beta @@ -77,7 +77,7 @@ groups: license: MIT config: client-class-name: Cohere - python-sdk: + python: audiences: - public - v2-beta diff --git a/packages/autorelease/src/create-releases.ts b/packages/autorelease/src/create-releases.ts index d7b07a7b..3a539fe5 100644 --- a/packages/autorelease/src/create-releases.ts +++ b/packages/autorelease/src/create-releases.ts @@ -1,4 +1,20 @@ import { Octokit } from "@octokit/rest" +import * as childProcess from "child_process" + +export const execCmd = async (cmd: string, cwd: string): Promise<{error: null | childProcess.ExecException, stderr: string, stdout: string}> => { + return new Promise((resolve, reject) => { + try { + childProcess.exec(cmd, {cwd}, (error, stdout, stderr) => { + if (error) { + resolve({error, stderr, stdout}) + } + resolve({ error, stderr, stdout}) + }) + } catch (error) { + resolve({error, stderr: '', stdout: ''}) + } + }) +} const versionMatchRegex = /v?(\d+\.\d+\.\d+)/g @@ -141,6 +157,25 @@ const createRelease = async (language: typeof languages[number], version: string }) } +const runFernGenerate = async (language: typeof languages[number], version: string) => { + const command = `fern generate --api sdks --group ${language} --version "${version}" --log-level debug` + + const { error, stderr, stdout } = await execCmd(command, process.cwd()) + + if (stderr) { + console.error(stderr) + } + + if (stdout) { + console.log(stdout) + } + + if (error) { + console.error(`Error running fern generate for ${language}@${version}`) + throw error + } +} + (async () => { const bumpType = process.env.BUMP_TYPE as typeof bumpTypes[number] | undefined const language = process.env.LANGUAGE as typeof languages[number] | "all" | undefined @@ -158,6 +193,10 @@ const createRelease = async (language: typeof languages[number], version: string await Promise.all( languages .filter(l => language === "all" ? true : l === language) - .map(async language => createRelease(language, nextVersions[language].next)) + .flatMap(async language => [ + createRelease(language, nextVersions[language].next), + runFernGenerate(language, nextVersions[language].next) + ]) ) + })() \ No newline at end of file From 02adc5b79dc709995425c12e217a63b3ff31358e Mon Sep 17 00:00:00 2001 From: Billy Trend Date: Thu, 16 Jan 2025 14:55:07 +0000 Subject: [PATCH 2/3] token --- .github/workflows/create-sdk-releases.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-sdk-releases.yml b/.github/workflows/create-sdk-releases.yml index 2cf96e7c..79441b57 100644 --- a/.github/workflows/create-sdk-releases.yml +++ b/.github/workflows/create-sdk-releases.yml @@ -43,4 +43,5 @@ jobs: GITHUB_REPO: ${{ github.event.repository.name }} BUMP_TYPE: ${{ github.event.inputs.bump_type }} LANGUAGE: ${{ github.event.inputs.language }} + FERN_TOKEN: ${{ secrets.FERN_TOKEN }} run: pnpm run --filter autorelease release From d8e135266306c96ca0a8126a2863edd92ed4c2df Mon Sep 17 00:00:00 2001 From: Billy Trend Date: Thu, 16 Jan 2025 14:59:41 +0000 Subject: [PATCH 3/3] Add tokens --- .github/workflows/create-sdk-releases.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/create-sdk-releases.yml b/.github/workflows/create-sdk-releases.yml index 79441b57..9ac7bec3 100644 --- a/.github/workflows/create-sdk-releases.yml +++ b/.github/workflows/create-sdk-releases.yml @@ -23,6 +23,7 @@ on: jobs: run: runs-on: ubuntu-latest + environment: sdk-release steps: - name: Checkout repository uses: actions/checkout@v4 @@ -44,4 +45,11 @@ jobs: BUMP_TYPE: ${{ github.event.inputs.bump_type }} LANGUAGE: ${{ github.event.inputs.language }} FERN_TOKEN: ${{ secrets.FERN_TOKEN }} + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_CENTRAL_SECRET_KEY_KEY_ID: ${{ secrets.MAVEN_CENTRAL_SECRET_KEY_KEY_ID }} + MAVEN_CENTRAL_SECRET_KEY_PASSWORD: ${{ secrets.MAVEN_CENTRAL_SECRET_KEY_PASSWORD }} + MAVEN_CENTRAL_SECRET_KEY: ${{ secrets.MAVEN_CENTRAL_SECRET_KEY }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} run: pnpm run --filter autorelease release