name: Deploy review environment

on:
  workflow_dispatch:
    inputs:
      envs_preset:
          description: ENVs preset
          required: false
          default: main
          type: choice
          options:
            - none
            - arbitrum
            - arbitrum_nova
            - arbitrum_sepolia
            - base
            - celo_alfajores
            - garnet
            - gnosis
            - eth
            - eth_sepolia
            - eth_goerli
            - filecoin
            - immutable
            - main
            - mekong
            - neon_devnet
            - optimism
            - optimism_sepolia
            - polygon
            - rari_testnet
            - rootstock
            - shibarium
            - scroll_sepolia
            - stability
            - zkevm
            - zilliqa_prototestnet
            - zksync
            - zora

jobs:
  make_slug:
    name: Make GitHub reference slug
    runs-on: ubuntu-latest
    outputs:
      REF_SLUG: ${{ steps.output.outputs.REF_SLUG }}
    steps:
      -   name: Inject slug/short variables
          uses: rlespinasse/github-slug-action@v4.4.1

      -   name: Set output
          id: output
          run: echo "REF_SLUG=${{ env.GITHUB_REF_NAME_SLUG }}" >> $GITHUB_OUTPUT

  publish_image:
    name: Publish Docker image
    needs: make_slug
    uses: './.github/workflows/publish-image.yml'
    with:
        tags: |
          type=raw,value=review-${{ needs.make_slug.outputs.REF_SLUG }}
        build_args: ENVS_PRESET=${{ inputs.envs_preset }}
    secrets: inherit

  deploy_review:
    name: Deploy frontend
    needs: [ make_slug, publish_image ]
    uses: blockscout/actions/.github/workflows/deploy_helmfile.yaml@main
    with:
      appName: review-${{ needs.make_slug.outputs.REF_SLUG }}
      globalEnv: review
      helmfileDir: deploy
      kubeConfigSecret: ci/data/dev/kubeconfig/k8s-dev
      vaultRole: ci-dev
    secrets: inherit
