From 0fc91671f7a1c01b18b0e00dd94d6491915179a0 Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Thu, 31 Jul 2025 13:48:28 -0400 Subject: [PATCH 1/4] minor edit --- .../overview/typescript/publishing-to-npm.mdx | 78 ++++++++++++++++++- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx index c06ccfc13..46d26aeb6 100644 --- a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx +++ b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx @@ -225,8 +225,6 @@ Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) github: repository: your-org/your-repository ``` - - When you regenerate your release, Fern will automatically create a workflow in your repository called `.github/workflows/ci.yml` that will automatically publish your release to npm. For an example, see Vapi's [npm publishing GitHub Action](https://github.com/VapiAI/server-sdk-typescript/blob/main/.github/workflows/ci.yml) @@ -252,6 +250,8 @@ groups: github: repository: your-org/your-repository ``` + + When you regenerate your release, Fern will automatically create a workflow in your repository called `.github/workflows/ci.yml` that will automatically publish your release to npm. For an example, see Vapi's [npm publishing GitHub Action](https://github.com/VapiAI/server-sdk-typescript/blob/main/.github/workflows/ci.yml) @@ -277,4 +277,76 @@ groups: ``` Local machine output will verify that the release is pushed to your repository and tagged with the version you specified. Log back into npm and - navigate to **Packages** to see your new release. \ No newline at end of file + navigate to **Packages** to see your new release. + +## Release using GitHub workflows + +Add a GitHub action to trigger SDK releases for each language. Trigger new releases directly from your repo instead of your local machine. + +In your repo, navigate to Actions and select New workflow, then Set up workflow yourself. + +Navigate to Actions tab and click run workflow + + +Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) to automatically publish new SDK versions to npm when you push code changes. + + + + + + Open your Fern repository in GitHub. Click on the **Settings** tab in your repository. Then, under the **Security** section, open **Secrets and variables** > **Actions**. + + + Adding GitHub Repository Secret + + + You can also use the url `https://github.com//settings/secrets/actions`. + + + + + + 1. Select **New repository secret**. + 1. Name your secret `NPM_TOKEN`. + 1. Add the corresponding token you generated above. + 1. Click **Add secret**. + + + NPM_TOKEN secret + + + + + + + Change your workflow permissions to allow GitHub to run workflows: + + 1. Click on the **Settings** tab in your repository. + 1. Under the **Code and automation** section, navigate to **Actions** > **General**. + 1. Under **Actions permissions**, select **Allow all actions and reusable workflows**. + 1. **Save** your settings. Now GitHub can run the actions you configure. + + + + + Add `token: ${NPM_TOKEN}` to `generators.yml` to tell Fern to use the `NPM_TOKEN` environment variable (which you just configured in your GitHub repo) for authentication when publishing to the npm registry. + + ```yaml {9} + groups: + ts-sdk: + generators: + - name: fernapi/fern-typescript-sdk + version: + output: + location: npm + package-name: name-of-your-package + token: ${NPM_TOKEN} + config: + namespaceExport: YourClientName + github: + repository: your-org/your-repository + ``` + + + + \ No newline at end of file From 6369201bc12feee0b3d64038a95de63412a2e244 Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Sat, 2 Aug 2025 07:32:29 -0400 Subject: [PATCH 2/4] more flow edits --- .../overview/typescript/publishing-to-npm.mdx | 42 +++++++++++++++++-- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx index 46d26aeb6..aeaf8ba97 100644 --- a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx +++ b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx @@ -279,13 +279,47 @@ groups: repository and tagged with the version you specified. Log back into npm and navigate to **Packages** to see your new release. -## Release using GitHub workflows +## Release using GitHub workflows (optional, recommended) + +Update your release workflow to use GitHub Actions Add a GitHub action to trigger SDK releases for each language. Trigger new releases directly from your repo instead of your local machine. + +-add NPM Token to GitHub +-Add Fern token to GitHub + +In your repo, navigate to Actions and select New workflow, then Set up workflow yourself. Set up a workflow dispatch that is similar to this: + +```yaml title="TypeScript" maxLines=0 +name: Publish TypeScript SDK + +on: + workflow_dispatch: + inputs: + version: + description: "The version of the TypeScript SDK that you would like to release" + required: true + type: string + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Install Fern CLI + run: npm install -g fern-api + + - name: Release TypeScript SDK + env: + FERN_TOKEN: ${{ secrets.FERN_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + fern generate --group ts-sdk --version ${{ inputs.version }} --log-level debug +``` -Add a GitHub action to trigger SDK releases for each language. Trigger new releases directly from your repo instead of your local machine. +Navigate to Actions tab and click run workflow -In your repo, navigate to Actions and select New workflow, then Set up workflow yourself. -Navigate to Actions tab and click run workflow Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) to automatically publish new SDK versions to npm when you push code changes. From 7d2e599404faf91d82cad20cb2c83d3938d8a6ff Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Sat, 2 Aug 2025 13:20:57 -0400 Subject: [PATCH 3/4] update github actions release flow --- .../typescript/assets/sdk-release-action.png | Bin 47144 -> 0 bytes .../assets/ts-sdk-release-action.png | Bin 0 -> 64215 bytes .../overview/typescript/publishing-to-npm.mdx | 207 ++++++------------ 3 files changed, 64 insertions(+), 143 deletions(-) delete mode 100644 fern/products/sdks/overview/typescript/assets/sdk-release-action.png create mode 100644 fern/products/sdks/overview/typescript/assets/ts-sdk-release-action.png diff --git a/fern/products/sdks/overview/typescript/assets/sdk-release-action.png b/fern/products/sdks/overview/typescript/assets/sdk-release-action.png deleted file mode 100644 index da0edb89839f2a10b13864c889b6d2c3c2cf39c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47144 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 F{XcIC4le)z diff --git a/fern/products/sdks/overview/typescript/assets/ts-sdk-release-action.png b/fern/products/sdks/overview/typescript/assets/ts-sdk-release-action.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ca9f3fb12dce3bad971b6e2ffbd9ae9ff5e3c2 GIT binary patch literal 64215 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 literal 0 HcmV?d00001 diff --git a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx index aeaf8ba97..d99496dec 100644 --- a/fern/products/sdks/overview/typescript/publishing-to-npm.mdx +++ b/fern/products/sdks/overview/typescript/publishing-to-npm.mdx @@ -162,16 +162,17 @@ groups: -## Configure npm authentication +## Configure npm publication + +Choose how you want to authenticate and publish your SDK to npm. You can use GitHub workflows for automated releases or publish directly via the CLI. - + -Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) to automatically publish new SDK versions to npm when you push code changes. +Set up a release workflow via [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) so you can trigger new SDK releases directly from your repository. - - + Open your Fern repository in GitHub. Click on the **Settings** tab in your repository. Then, under the **Security** section, open **Secrets and variables** > **Actions**. @@ -182,7 +183,6 @@ Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) You can also use the url `https://github.com//settings/secrets/actions`. - 1. Select **New repository secret**. @@ -195,41 +195,70 @@ Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) + - - - Change your workflow permissions to allow GitHub to run workflows: + 1. Select **New repository secret**. + 1. Name your secret `FERN_TOKEN`. + 1. Add your Fern token. If you don't already have one, generate one by running + `fern-token`. By default, the `fern_token` is generated for the organization + listed in `fern.config.json`. + 1. Click **Add secret**. - 1. Click on the **Settings** tab in your repository. - 1. Under the **Code and automation** section, navigate to **Actions** > **General**. - 1. Under **Actions permissions**, select **Allow all actions and reusable workflows**. - 1. **Save** your settings. Now GitHub can run the actions you configure. + + NPM_TOKEN secret + - - - Add `token: ${NPM_TOKEN}` to `generators.yml` to tell Fern to use the `NPM_TOKEN` environment variable (which you just configured in your GitHub repo) for authentication when publishing to the npm registry. - - ```yaml {9} - groups: - ts-sdk: - generators: - - name: fernapi/fern-typescript-sdk - version: - output: - location: npm - package-name: name-of-your-package - token: ${NPM_TOKEN} - config: - namespaceExport: YourClientName - github: - repository: your-org/your-repository + + + In your repo, navigate to **Actions**. Select **New workflow**, then **Set up workflow yourself**. Set up a workflow dispatch that is similar to this: + + ```yaml title=".github/workflows/publish.yml" maxLines=0 + name: Publish TypeScript SDK + + on: + workflow_dispatch: + inputs: + version: + description: "The version of the TypeScript SDK that you would like to release" + required: true + type: string + + jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Install Fern CLI + run: npm install -g fern-api + + - name: Release TypeScript SDK + env: + FERN_TOKEN: ${{ secrets.FERN_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + fern generate --group ts-sdk --version ${{ inputs.version }} --log-level debug ``` + + + + Navigate to the **Actions** tab, select the workflow you just created, and + click **Run workflow**. + + + Running TS publish workflow + + + Once your workflow completes, log back into npm and + navigate to **Packages** to see your new release. + - + @@ -262,15 +291,8 @@ groups: ``` - - - - - + -## Release your SDK to npm - - Regenerate your SDK and publish it on npm: ```bash fern generate --group ts-sdk --version @@ -279,108 +301,7 @@ groups: repository and tagged with the version you specified. Log back into npm and navigate to **Packages** to see your new release. -## Release using GitHub workflows (optional, recommended) - -Update your release workflow to use GitHub Actions Add a GitHub action to trigger SDK releases for each language. Trigger new releases directly from your repo instead of your local machine. - --add NPM Token to GitHub --Add Fern token to GitHub - -In your repo, navigate to Actions and select New workflow, then Set up workflow yourself. Set up a workflow dispatch that is similar to this: - -```yaml title="TypeScript" maxLines=0 -name: Publish TypeScript SDK - -on: - workflow_dispatch: - inputs: - version: - description: "The version of the TypeScript SDK that you would like to release" - required: true - type: string - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Install Fern CLI - run: npm install -g fern-api - - - name: Release TypeScript SDK - env: - FERN_TOKEN: ${{ secrets.FERN_TOKEN }} - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - run: | - fern generate --group ts-sdk --version ${{ inputs.version }} --log-level debug -``` - -Navigate to Actions tab and click run workflow - - - - -Use [GitHub Actions](https://docs.github.com/en/actions/get-started/quickstart) to automatically publish new SDK versions to npm when you push code changes. - - - - - - Open your Fern repository in GitHub. Click on the **Settings** tab in your repository. Then, under the **Security** section, open **Secrets and variables** > **Actions**. - - - Adding GitHub Repository Secret - - - You can also use the url `https://github.com//settings/secrets/actions`. - - - - - - 1. Select **New repository secret**. - 1. Name your secret `NPM_TOKEN`. - 1. Add the corresponding token you generated above. - 1. Click **Add secret**. - - - NPM_TOKEN secret - - - - - - - Change your workflow permissions to allow GitHub to run workflows: - - 1. Click on the **Settings** tab in your repository. - 1. Under the **Code and automation** section, navigate to **Actions** > **General**. - 1. Under **Actions permissions**, select **Allow all actions and reusable workflows**. - 1. **Save** your settings. Now GitHub can run the actions you configure. - - - - - Add `token: ${NPM_TOKEN}` to `generators.yml` to tell Fern to use the `NPM_TOKEN` environment variable (which you just configured in your GitHub repo) for authentication when publishing to the npm registry. - - ```yaml {9} - groups: - ts-sdk: - generators: - - name: fernapi/fern-typescript-sdk - version: - output: - location: npm - package-name: name-of-your-package - token: ${NPM_TOKEN} - config: - namespaceExport: YourClientName - github: - repository: your-org/your-repository - ``` - - \ No newline at end of file + + From 422df210af1ea858203d0c573be53830b4af1a4f Mon Sep 17 00:00:00 2001 From: Devin Logan Date: Sat, 2 Aug 2025 13:23:19 -0400 Subject: [PATCH 4/4] nit: make npm the correct case --- fern/products/sdks/sdks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fern/products/sdks/sdks.yml b/fern/products/sdks/sdks.yml index c771d7522..54ea5fe71 100644 --- a/fern/products/sdks/sdks.yml +++ b/fern/products/sdks/sdks.yml @@ -33,7 +33,7 @@ navigation: - page: Configuration path: ./overview/typescript/configuration.mdx slug: configuration - - page: Publishing to NPM + - page: Publishing to npm path: ./overview/typescript/publishing-to-npm.mdx slug: publishing - page: Adding custom code