Skip to content

chore(deps): update actions/checkout digest to 8e8c483 (#1021) #706

chore(deps): update actions/checkout digest to 8e8c483 (#1021)

chore(deps): update actions/checkout digest to 8e8c483 (#1021) #706

# This workflow handles both automated and manual package publishing:
#
# AUTOMATED PUBLISHING (on push to main):
# - Triggered automatically when changes are pushed to the main branch
# - Uses release-please to create releases based on conventional commits
# - Publishes packages to npm automatically when release PRs are merged
# - All release-* jobs run in dependency order based on package dependencies
#
# MANUAL PUBLISHING (via workflow_dispatch):
# - Can be triggered manually from the Actions tab
# - Allows publishing a specific package to npm or jsr
# - Supports prerelease and dry-run modes
# - Runs the manual-publish job which builds, tests, and publishes the selected package
# - Primarily used for pre-release jobs, or to correct publishing errors during the automated process
#
# The workflow uses conditional logic to ensure only the appropriate jobs run:
# - release-please job: only runs on push events
# - release-* jobs: only run on push events when their package has a new release
# - manual-publish job: only runs on workflow_dispatch events
on:
push:
branches:
- main
workflow_dispatch:
inputs:
package_registry:
description: 'Publish to'
required: true
default: 'npm'
type: choice
options:
- npm
- jsr
workspace_path:
description: 'The workspace to publish'
required: true
default: 'packages/shared/common'
type: choice
options:
- packages/shared/common
- packages/shared/sdk-client
- packages/shared/sdk-server
- packages/shared/sdk-server-edge
- packages/shared/akamai-edgeworker-sdk
- packages/sdk/cloudflare
- packages/sdk/fastly
- packages/sdk/react-native
- packages/sdk/server-node
- packages/sdk/react-universal
- packages/sdk/vercel
- packages/sdk/akamai-base
- packages/sdk/akamai-edgekv
- packages/store/node-server-sdk-redis
- packages/store/node-server-sdk-dynamodb
- packages/telemetry/node-server-sdk-otel
- packages/tooling/jest
- packages/sdk/browser
- packages/sdk/server-ai
- packages/ai-providers/server-ai-openai
- packages/ai-providers/server-ai-vercel
- packages/ai-providers/server-ai-langchain
- packages/telemetry/browser-telemetry
- packages/sdk/combined-browser
- packages/sdk/shopify-oxygen
prerelease:
description: 'Is this a prerelease. If so, then the latest tag will not be updated in npm.'
type: boolean
required: true
dry_run:
description: 'Is this a dry run. If so no package will be published.'
type: boolean
required: true
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
if: github.event_name == 'push'
outputs:
package-common-released: ${{ steps.release.outputs['packages/shared/common--release_created'] }}
package-sdk-client-released: ${{ steps.release.outputs['packages/shared/sdk-client--release_created'] }}
package-sdk-server-released: ${{ steps.release.outputs['packages/shared/sdk-server--release_created'] }}
package-sdk-server-edge-released: ${{ steps.release.outputs['packages/shared/sdk-server-edge--release_created'] }}
package-akamai-edgeworker-sdk-released: ${{ steps.release.outputs['packages/shared/akamai-edgeworker-sdk--release_created'] }}
package-cloudflare-released: ${{ steps.release.outputs['packages/sdk/cloudflare--release_created'] }}
package-fastly-released: ${{ steps.release.outputs['packages/sdk/fastly--release_created'] }}
package-react-native-released: ${{ steps.release.outputs['packages/sdk/react-native--release_created'] }}
package-server-node-released: ${{ steps.release.outputs['packages/sdk/server-node--release_created'] }}
package-vercel-released: ${{ steps.release.outputs['packages/sdk/vercel--release_created'] }}
package-akamai-base-released: ${{ steps.release.outputs['packages/sdk/akamai-base--release_created'] }}
package-akamai-edgekv-released: ${{ steps.release.outputs['packages/sdk/akamai-edgekv--release_created'] }}
package-node-server-sdk-redis-release: ${{ steps.release.outputs['packages/store/node-server-sdk-redis--release_created'] }}
package-node-server-sdk-dynamodb-release: ${{ steps.release.outputs['packages/store/node-server-sdk-dynamodb--release_created'] }}
package-node-server-sdk-otel-release: ${{ steps.release.outputs['packages/telemetry/node-server-sdk-otel--release_created'] }}
package-tooling-jest-release: ${{ steps.release.outputs['packages/tooling/jest--release_created'] }}
package-react-universal-release: ${{ steps.release.outputs['packages/sdk/react-universal--release_created'] }}
package-browser-released: ${{ steps.release.outputs['packages/sdk/browser--release_created'] }}
package-server-ai-released: ${{ steps.release.outputs['packages/sdk/server-ai--release_created'] }}
package-server-ai-langchain-released: ${{ steps.release.outputs['packages/ai-providers/server-ai-langchain--release_created'] }}
package-server-ai-openai-released: ${{ steps.release.outputs['packages/ai-providers/server-ai-openai--release_created'] }}
package-server-ai-vercel-released: ${{ steps.release.outputs['packages/ai-providers/server-ai-vercel--release_created'] }}
package-browser-telemetry-released: ${{ steps.release.outputs['packages/telemetry/browser-telemetry--release_created'] }}
package-combined-browser-released: ${{ steps.release.outputs['packages/sdk/combined-browser--release_created'] }}
package-sdk-shopify-oxygen-released: ${{ steps.release.outputs['packages/sdk/shopify-oxygen--release_created'] }}
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
token: ${{secrets.GITHUB_TOKEN}}
release-common:
runs-on: ubuntu-latest
needs: ['release-please']
permissions:
id-token: write
contents: write
if: ${{ needs.release-please.outputs.package-common-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-common
name: Full release of packages/shared/common
uses: ./actions/full-release
with:
workspace_path: packages/shared/common
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-sdk-client:
runs-on: ubuntu-latest
needs: ['release-please', 'release-common']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-sdk-client-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-sdk-client
name: Full release of packages/shared/sdk-client
uses: ./actions/full-release
with:
workspace_path: packages/shared/sdk-client
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-sdk-server:
runs-on: ubuntu-latest
needs: ['release-please', 'release-common']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-sdk-server-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-sdk-server
name: Full release of packages/shared/sdk-server
uses: ./actions/full-release
with:
workspace_path: packages/shared/sdk-server
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-sdk-server-edge:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-sdk-server-edge-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-sdk-server-edge
name: Full release of packages/shared/sdk-server-edge
uses: ./actions/full-release
with:
workspace_path: packages/shared/sdk-server-edge
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-akamai-edgeworker-sdk:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-akamai-edgeworker-sdk-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-akamai-edgeworker-sdk
name: Full release of packages/shared/akamai-edgeworker-sdk
uses: ./actions/full-release
with:
workspace_path: packages/shared/akamai-edgeworker-sdk
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-cloudflare:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server-edge']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-cloudflare-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-cloudflare
name: Full release of packages/sdk/cloudflare
uses: ./actions/full-release
with:
workspace_path: packages/sdk/cloudflare
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-fastly:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-fastly-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-fastly
name: Full release of packages/sdk/fastly
uses: ./actions/full-release
with:
workspace_path: packages/sdk/fastly
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-react-native:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-client']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-react-native-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-react-native
name: Full release of packages/sdk/react-native
uses: ./actions/full-release
with:
workspace_path: packages/sdk/react-native
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-browser:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-client']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-browser-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-browser
name: Full release of packages/sdk/browser
uses: ./actions/full-release
with:
workspace_path: packages/sdk/browser
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-server-node:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-server-node-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-server-node
name: Full release of packages/sdk/server-node
uses: ./actions/full-release
with:
workspace_path: packages/sdk/server-node
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-vercel:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server-edge']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-vercel-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-vercel
name: Full release of packages/sdk/vercel
uses: ./actions/full-release
with:
workspace_path: packages/sdk/vercel
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-akamai-base:
runs-on: ubuntu-latest
needs: ['release-please', 'release-akamai-edgeworker-sdk']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-akamai-base-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-akamai-base
name: Full release of packages/sdk/akamai-base
uses: ./actions/full-release
with:
workspace_path: packages/sdk/akamai-base
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-akamai-edgekv:
runs-on: ubuntu-latest
needs: ['release-please', 'release-akamai-edgeworker-sdk']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-akamai-edgekv-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-akamai-edgekv
name: Full release of packages/sdk/akamai-edgekv
uses: ./actions/full-release
with:
workspace_path: packages/sdk/akamai-edgekv
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-node-server-sdk-redis:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-node']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-node-server-sdk-redis-release == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- run: |
sudo apt-get update
sudo apt-get install redis-server
sudo service redis-server start
- id: release-node-server-sdk-redis
name: Full release of packages/store/node-server-sdk-redis
uses: ./actions/full-release
with:
workspace_path: packages/store/node-server-sdk-redis
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-node-server-sdk-dynamodb:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-node']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-node-server-sdk-dynamodb-release == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- run: |
sudo docker run -d -p 8000:8000 amazon/dynamodb-local
- id: release-node-server-sdk-dynamodb
name: Full release of packages/store/node-server-sdk-dynamodb
uses: ./actions/full-release
with:
workspace_path: packages/store/node-server-sdk-dynamodb
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-node-server-sdk-otel:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-node']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-node-server-sdk-otel-release == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-node-server-sdk-otel
name: Full release of packages/telemetry/node-server-sdk-otel
uses: ./actions/full-release
with:
workspace_path: packages/telemetry/node-server-sdk-otel
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-tooling-jest:
runs-on: ubuntu-latest
needs: ['release-please']
permissions:
id-token: write
contents: write
if: ${{ needs.release-please.outputs.package-tooling-jest-release == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-tooling-jest
name: Full release of packages/tooling/jest
uses: ./actions/full-release
with:
workspace_path: packages/tooling/jest
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-tooling-react-universal:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-node', 'release-sdk-client']
permissions:
id-token: write
contents: write
if: false #${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-react-universal-release == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-react-universal-sdk
name: Full release of packages/sdk/react-universal
uses: ./actions/full-release
with:
workspace_path: packages/sdk/react-universal
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-server-ai:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-server-ai-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-react-native
name: Full release of packages/sdk/server-ai
uses: ./actions/full-release
with:
workspace_path: packages/sdk/server-ai
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-browser-telemetry:
runs-on: ubuntu-latest
needs: ['release-please', 'release-browser']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-browser-telemetry-released == 'true' }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-browser-telemetry
name: Full release of packages/telemetry/browser-telemetry
uses: ./actions/full-release
with:
workspace_path: packages/telemetry/browser-telemetry
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-combined-browser:
runs-on: ubuntu-latest
needs: ['release-please', 'release-browser']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-combined-browser-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-combined-browser
name: Full release of packages/sdk/combined-browser
uses: ./actions/full-release
with:
workspace_path: packages/sdk/combined-browser
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-server-ai-langchain:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-ai']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-server-ai-langchain-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-server-ai-langchain
name: Full release of packages/ai-providers/server-ai-langchain
uses: ./actions/full-release
with:
workspace_path: packages/ai-providers/server-ai-langchain
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-server-ai-openai:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-ai']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-server-ai-openai-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-server-ai-openai
name: Full release of packages/ai-providers/server-ai-openai
uses: ./actions/full-release
with:
workspace_path: packages/ai-providers/server-ai-openai
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-server-ai-vercel:
runs-on: ubuntu-latest
needs: ['release-please', 'release-server-ai']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-server-ai-vercel-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-server-ai-vercel
name: Full release of packages/ai-providers/server-ai-vercel
uses: ./actions/full-release
with:
workspace_path: packages/ai-providers/server-ai-vercel
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
release-shopify-oxygen:
runs-on: ubuntu-latest
needs: ['release-please', 'release-sdk-server']
permissions:
id-token: write
contents: write
if: ${{ always() && !failure() && !cancelled() && needs.release-please.outputs.package-sdk-shopify-oxygen-released == 'true'}}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: release-shopify-oxygen
name: Full release of packages/sdk/shopify-oxygen
uses: ./actions/full-release
with:
workspace_path: packages/sdk/shopify-oxygen
aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
manual-publish:
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- uses: ./actions/setup-release-node
- name: 'Setup Redis'
if: ${{ inputs.workspace_path == 'packages/store/node-server-sdk-redis' }}
run: |
sudo apt-get update
sudo apt-get install redis-server
sudo service redis-server start
- name: 'Setup DynamoDB'
if: ${{ inputs.workspace_path == 'packages/store/node-server-sdk-dynamodb' }}
run: |
sudo docker run -d -p 8000:8000 amazon/dynamodb-local
- name: 'Set WORKSPACE_NAME variable'
run: |
WORKSPACE_NAME=$(./scripts/package-name.sh ${{ inputs.workspace_path }})
echo "WORKSPACE_NAME=$WORKSPACE_NAME" >> $GITHUB_ENV
- id: build-and-test
name: Build and Test
uses: ./actions/ci
with:
workspace_name: ${{ env.WORKSPACE_NAME }}
workspace_path: ${{ inputs.workspace_path }}
- id: publish-jsr
name: Publish Package to jsr
if: ${{ inputs.package_registry == 'jsr' }}
uses: ./actions/publish-jsr
with:
workspace_name: ${{ env.WORKSPACE_NAME }}
workspace_path: ${{ inputs.workspace_path }}
dry_run: ${{ inputs.dry_run }}
# Publishing credentials for NPM come from OIDC.
- id: publish-npm
name: Publish Package to npm
if: ${{ inputs.package_registry == 'npm' }}
uses: ./actions/publish
with:
workspace_name: ${{ env.WORKSPACE_NAME }}
workspace_path: ${{ inputs.workspace_path }}
prerelease: ${{ inputs.prerelease }}
dry_run: ${{ inputs.dry_run }}