on:
  push:
    branches:
      - main
name: release-please

jobs:
  release-please:
    runs-on: ubuntu-latest
    outputs:
      package-common-released: ${{ steps.release.outputs['packages/shared/common--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-cloudflare-released: ${{ steps.release.outputs['packages/sdk/cloudflare--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'] }}
    steps:
      - uses: google-github-actions/release-please-action@v3
        id: release
        with:
          command: manifest
          token: ${{secrets.GITHUB_TOKEN}}
          default-branch: main

  release-common:
    runs-on: ubuntu-latest
    needs: ['release-please']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-common-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - 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-server:
    runs-on: ubuntu-latest
    needs: ['release-please']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-sdk-server-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - id: release-common
        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']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-sdk-server-edge-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - id: release-common
        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-cloudflare:
    runs-on: ubuntu-latest
    needs: ['release-please']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-cloudflare-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - id: release-common
        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-server-node:
    runs-on: ubuntu-latest
    needs: ['release-please']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-server-node-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - id: release-common
        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']
    permissions:
      id-token: write
      contents: write
    if: ${{ needs.release-please.outputs.package-vercel-released }}
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 16.x
          registry-url: 'https://registry.npmjs.org'
      - id: release-common
        name: Full release of packages/sdk/vercel
        uses: ./actions/full-release
        with:
          workspace_path: packages/sdk/vercel
          aws_assume_role: ${{ vars.AWS_ROLE_ARN }}
