diff --git a/.fernignore b/.fernignore index 5b3cc70..7f697f3 100644 --- a/.fernignore +++ b/.fernignore @@ -1,5 +1,14 @@ # Specify files that shouldn't be modified by Fern + +# Legacy CI workflow replaced by release-please.yml — keep listed so Fern +# does not regenerate the file after deletion. .github/workflows/ci.yml +# Release-please owns versioning, releases, and npm publish. +.github/workflows/release-please.yml +release-please-config.json +.release-please-manifest.json +CHANGELOG.md + # ignore context7 config file context7.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 9dfc527..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: ci - -on: [push] - -jobs: - compile: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Set up node - uses: actions/setup-node@v4 - with: - node-version: '24' - - - name: Compile - run: yarn && yarn build - - test: - runs-on: ubuntu-latest - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Set up node - uses: actions/setup-node@v4 - with: - node-version: '24' - - - name: Test - run: yarn && yarn test - - publish: - needs: [compile, test] - if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') - runs-on: ubuntu-latest - permissions: - contents: read - id-token: write - steps: - - name: Checkout repo - uses: actions/checkout@v4 - - - name: Set up node - uses: actions/setup-node@v4 - with: - node-version: '24' - registry-url: 'https://registry.npmjs.org' - - - name: Install dependencies - run: yarn install - - - name: Build - run: yarn build - - - name: Publish to npm - run: | - if [[ ${GITHUB_REF} == *alpha* ]]; then - npm publish --provenance --access public --tag alpha - elif [[ ${GITHUB_REF} == *beta* ]]; then - npm publish --provenance --access public --tag beta - else - npm publish --provenance --access public - fi diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000..ea27959 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,85 @@ +name: release-please + +on: + push: + branches: [master] + pull_request: + branches: [master] + +permissions: + contents: read + +jobs: + compile: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Set up node + uses: actions/setup-node@v4 + with: + node-version: "24" + - name: Compile + run: yarn && yarn build + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Set up node + uses: actions/setup-node@v4 + with: + node-version: "24" + - name: Test + run: yarn && yarn test + + release-please: + needs: [compile, test] + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + steps: + - name: Run release-please + id: release + uses: googleapis/release-please-action@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + config-file: release-please-config.json + manifest-file: .release-please-manifest.json + + publish: + needs: release-please + if: needs.release-please.outputs.release_created == 'true' + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - name: Checkout repo + uses: actions/checkout@v4 + - name: Set up node + uses: actions/setup-node@v4 + with: + node-version: "24" + registry-url: "https://registry.npmjs.org" + - name: Install dependencies + run: yarn install + - name: Build + run: yarn build + - name: Publish to npm + env: + TAG_NAME: ${{ needs.release-please.outputs.tag_name }} + run: | + if [[ "$TAG_NAME" == *alpha* ]]; then + npm publish --provenance --access public --tag alpha + elif [[ "$TAG_NAME" == *beta* ]]; then + npm publish --provenance --access public --tag beta + else + npm publish --provenance --access public + fi diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..b870c5e --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "1.0.2" +} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..8f382fb --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "release-type": "node", + "include-v-in-tag": false, + "include-component-in-tag": false, + "packages": { + ".": { + "package-name": "@speechify/api", + "extra-files": [ + { + "type": "generic", + "path": "src/version.ts" + } + ] + } + } +} diff --git a/src/version.ts b/src/version.ts index 8c6c142..b75d17c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = "1.0.2"; +export const SDK_VERSION = "1.0.2"; // x-release-please-version