Skip to content

feat: stateless remote client (#426) #274

feat: stateless remote client (#426)

feat: stateless remote client (#426) #274

name: Run Release Please
on:
push:
branches:
- main
permissions:
id-token: write # Required for OIDC
contents: write
pull-requests: write
jobs:
Release-Please:
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
release_tag_name: ${{ steps.release.outputs.release_tag_name }}
sdk-release_created: ${{ steps.release.outputs['packages/sdk--release_created'] }}
react-release_created: ${{ steps.release.outputs['packages/react--release_created'] }}
web-provider-release_created: ${{ steps.release.outputs['packages/openfeature-web-provider--release_created'] }}
server-provider-release_created: ${{ steps.release.outputs['packages/openfeature-server-provider--release_created'] }}
csr-common-release_created: ${{ steps.release.outputs['csr/csr-common--release_created'] }}
csr-recorder-release_created: ${{ steps.release.outputs['csr/csr-recorder--release_created'] }}
session-recording-release_created: ${{ steps.release.outputs['csr/session-recording--release_created'] }}
steps:
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
id: release
with:
token: ${{secrets.GITHUB_TOKEN}}
target-branch: main
include-component-in-tag: true
- name: Debug release-please outputs
shell: bash
run: echo '${{ toJSON(steps.release.outputs) }}'
Build-And-Publish:
environment: deployment
runs-on: ubuntu-latest
needs: [Release-Please]
if: ${{ needs.Release-Please.outputs.releases_created }}
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
ref: ${{ needs.Release-Please.outputs.release_tag_name }}
- name: Setup Node
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: '22'
registry-url: 'https://registry.npmjs.org'
- name: Update npm # Ensure npm >= 11.5.1 for trusted publishing
shell: bash
run: npm install -g npm@11
- name: Install dependencies
shell: bash
run: corepack enable && yarn install
- name: Build
shell: bash
run: yarn bundle
- name: Build CSR
shell: bash
run: yarn build:csr
- name: Publish sdk to NPM
if: ${{ needs.Release-Please.outputs.sdk-release_created }}
shell: bash
working-directory: packages/sdk
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish react to NPM
if: ${{ needs.Release-Please.outputs.react-release_created }}
shell: bash
working-directory: packages/react
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish openfeature-web-provider to NPM
if: ${{ needs.Release-Please.outputs.web-provider-release_created }}
shell: bash
working-directory: packages/openfeature-web-provider
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish openfeature-server-provider to NPM
if: ${{ needs.Release-Please.outputs.server-provider-release_created }}
shell: bash
working-directory: packages/openfeature-server-provider
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish csr-common to NPM
if: ${{ needs.Release-Please.outputs.csr-common-release_created }}
shell: bash
working-directory: csr/csr-common
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish csr-recorder to NPM
if: ${{ needs.Release-Please.outputs.csr-recorder-release_created }}
shell: bash
working-directory: csr/csr-recorder
run: |
yarn pack -o package.tgz
npm publish package.tgz
- name: Publish session-recording to NPM
if: ${{ needs.Release-Please.outputs.session-recording-release_created }}
shell: bash
working-directory: csr/session-recording
run: |
yarn pack -o package.tgz
npm publish package.tgz