diff --git a/.github/workflows/create-sdk-releases.yml b/.github/workflows/create-sdk-releases.yml index 2cf96e7c..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 @@ -43,4 +44,12 @@ jobs: GITHUB_REPO: ${{ github.event.repository.name }} 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 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